一、判断是那种设备

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的方法相关推荐

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

    以下js代码是判断移动端是否安装某款app的方法,分享给大家供大家参考,具体内容如下: if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { ...

  2. js判断移动端是否安装某款app的多种方法

    本文实例讲解了js判断移动端是否安装某款app的多种方法,分享给大家供大家参考,具体内容如下 第一种方法: 一:判断是那种设备 var isAndroid = u.indexOf('Android') ...

  3. js 判断移动端还是pc端,ios或者android

    js 判断移动端还是pc端,ios或者android 法一: function IsPC(){ var userAgentInfo = navigator.userAgent;var Agents = ...

  4. js判断手机上是否安装某APP

    前两天,产品给我又给我提了一个需求,就是给我看了一下人家的功能,说我们也想要这个功能,于是,我就开始实现这个功能了..... js判断手机上是否安装某APP,如果有的话直接打开App,否则打开App ...

  5. js判断pc端还是移动端

    js判断pc端还是移动端 通过navigator.UserAgent可以取得浏览器类别.版本,客户端操作系统等信息 以下是具体代码 <div id="box" class=& ...

  6. js判断移动端是否存在app

    js判断移动端是否存在app 说明 代码示例 说明 根据手机内有无app来打开或者是去下载app,这件事情如果是在浏览器里面打开那么没有问题,但是像微信或者钉钉这种第三方软件不支持跳转app. 代码示 ...

  7. html5 判断是否安装app,js判断手机上是否安装app

    通过js进行判断,判断手机上是否安装某一app,因为js并不能操作手机原生的API,所以它判断的方法只是通过动态生成iframe,用它打开app,看能不能打开,通过这个时间进行判断,下面有两段代码: ...

  8. js判断PC端或是移动端、判断是不是微信浏览器、js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    ** js判断PC端或是移动端 ** 第一种 window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator ...

  9. 用session实现html登录页面跳转页面跳转页面跳转,js判断登录与否并确定跳转页面的方法...

    这篇文章主要介绍了js判断登录与否并确定跳转页面的方法,涉及Ajax及session使用的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js判断登录与否并确定跳转页面的方法.分享给大家供 ...

最新文章

  1. win10关机后自动重启_安卓手机重启和关机后再开机,区别原来这么大!别不当回事...
  2. 生成pyd文件时提示“Unable to find vcvarsall.bat”的问题
  3. 使用 Laravel sharedLock 与 lockForUpdate 进行数据表行锁
  4. vue 左侧菜单隐藏_vue.js 左侧二级菜单显示与隐藏切换的实例代码?
  5. linux cron 服务,Linux定时任务Crontab详解(推荐)
  6. 理清网站数据分析思路导图
  7. 如何在PHP7中安装mysql的扩展
  8. 《数据挖掘概念与技术》学习笔记
  9. 一文读懂PCB品质体系认证
  10. 《工科泛函分析基础》预习笔记 证明:可测集上的连续函数都是可测函数
  11. Apple商务管理分发
  12. Packet Tracer –配置多区域OSPFv2
  13. 聚观早报 | 蔚来手机公司正式成立;苹果将取消iPad全系耳机孔
  14. 解决远程桌面背景变黑的问题
  15. java trim 空指针_trim()空指针异常问题!
  16. WIN10桌面图标变成白文件的一种解决方法
  17. 面试中C语言常问问题(含答案)
  18. 宝塔Linux面板安装SSL证书
  19. css如何实现菱形背景图片,使用CSS 实现菱形图片,斜条纹背景
  20. 推荐几个奇葩的技术公众号

热门文章

  1. 牛客网刷题之SQL篇:非技术快速入门39T
  2. 论文阅读:DeepDDG:使用神经网络预测蛋白质点突变的稳定性变化
  3. Guava之RateLimiter限流
  4. java读取并修改xml文件
  5. 子曾经曰过,时过境迁。
  6. pythonindex函数的使用格式_Python之函数
  7. RGB图像转为灰度图
  8. SQL常见函数以及使用
  9. webpack系列:webpack小老弟接了个简单活
  10. 舔狗【2019河北省大学生程序设计竞赛 J题】