iOS js判断移动端是否安装某款app的方法

2024-05-26 09:38

本文主要是介绍iOS js判断移动端是否安装某款app的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、判断是那种设备

var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
二、 ios设备:原理:判断是否认识这个协议,认识则直接跳转,不认识就在这里下载appios();
if(isiOS){function ios(){var ifr = document.createElement("iframe");ifr.src = "openwjtr://com.tyrbl.wjtr"; /***打开app的协议,有ios同事提供***/ifr.style.display = "none";document.body.appendChild(ifr);window.setTimeout(function(){document.body.removeChild(ifr);window.location.href = "http://www.wjtr.com/download/index.html"; /***下载app的地址***/},2000)};
}
第二种方法:
虽然在Js中可以启动某个app,但是并不能判断该app是否安装;
启动app需要的时间较长,js中断时间长,如果没安装,js瞬间就执行完毕。直接上代码吧!
function testApp(url) {var timeout, t = 1000, hasApp = true;setTimeout(function () {if (hasApp) {alert('安装了app');} else {alert('未安装app');}document.body.removeChild(ifr);}, 2000)var t1 = Date.now();var ifr = document.createElement("iframe");ifr.setAttribute('src', url);ifr.setAttribute('style', 'display:none');document.body.appendChild(ifr);timeout = setTimeout(function () {var t2 = Date.now();if (!t1 || t2 - t1 < t + 100) {hasApp = false;}}, t);
}
第三种方法:
<script language="javascript">if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {var loadDateTime = new Date();window.setTimeout(function() {var timeOutDateTime = new Date();if (timeOutDateTime - loadDateTime < 5000) {window.location = "要跳转的页面URL";} else {window.close();}},25);window.location = " apps custom url schemes ";} else if (navigator.userAgent.match(/android/i)) {var state = null;try {state = window.open("apps custom url schemes ", '_blank');} catch(e) {}if (state) {window.close();} else {window.location = "要跳转的页面URL";}}
</script>
四、注意事项:
  1. apps custom url schemes 是什么呢?
 
其实就是你与APP约定的一个协议URL,你的IOS同事或Android同事在写程序的时候会设置一个URL Scheme,例如设置:URL Scheme :app然后其他的程序就可以通过URLString = app:// 调用该应用。还可以传参数,如:app://reaction/?uid=1

原理:500ms内,本机有应用程序能解析这个协议并打开程序,调用该应用;如果本机没有应用程序能解析该协议或者500ms内没有打开这个程序,则执行setTimeout里面的function,就是跳转到你想跳转的页面。

2. 网页推荐下载App,如其本地已安装则直接打开本地App

1.网页推荐下载App,如果本地已安装则直接打开本地App

 
function open_or_download_app() { if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { // 判断useragent,当前设备为ios设备 var loadDateTime = new Date(); // 设置时间阈值,在规定时间里面没有打开对应App的话,直接去App store进行下载。 window.setTimeout(function() { var timeOutDateTime = new Date(); if (timeOutDateTime - loadDateTime < 2000) { window.location = "https://itunes.apple.com/cn/app/hu-lu/id627370076?mt=8"; } else { window.close(); } }, 50); window.location = "XXX://"; // iOS端URL Schema } else if (navigator.userAgent.match(/android/i)) { // 判断useragent,当前设备为android设备 window.location = "XXX://"; // Android端URL Schema }}



君凯商联网-iOS-字唐名僧

这篇关于iOS js判断移动端是否安装某款app的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004104

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写