方法一(网页上判断)

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 = "www://?param1=xxx&param2=xxx ";//与APP约定的一个协议URL
 } else if (navigator.userAgent.match(/android/i)) {
  var state = null;
  try {
   state = window.open("www://?param1=xxx&param2=xxx ", '_blank');//与APP约定的一个协议URL
  } catch(e) {}
  if (state) {
   window.close();
  } else {
   window.location = "要跳转的页面URL";
  }
 }

方法二

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);
}

方法三(APP里判断)

var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 
if(isAndroid){
      function android(){
        window.location.href = "www://?param1=xxx&param2=xxx"; /***打开app的协议,有安卓同事提供***/
        window.setTimeout(function(){
           window.location.href = "http://"; /***下载app的地址***/
        },2000);
      };
if(isiOS){
      function ios(){
        var ifr = document.createElement("iframe");
        ifr.src = "www://?param1=xxx&param2=xxx"; /***打开app的协议,有ios同事提供***/
        ifr.style.display = "none";
        document.body.appendChild(ifr);
        window.setTimeout(function(){
          document.body.removeChild(ifr);
           window.location.href = "http://"; /***下载app的地址***/
        },2000)
      };
}

转载于:https://www.cnblogs.com/jyc226/p/9705034.html

JS判断手机端是否安装某应用相关推荐

  1. JS判断手机端是否安装了某个客户端APP

    虽然在Js中可以启动某个app,但是并不能判断该app是否安装: 但是,但是....还是有奇思淫巧滴,启动app需要的时间较长,js中断时间长,如果没安装,js瞬间就执行完毕.直接上代码吧! html ...

  2. js判断手机端还是电脑PC端(以及注意事项)

    在router.index中声明方法,在导航守卫中调用并跳转 要注意跳转的网址必须加上 http 或https 1: 不加是不会打开外网的连接,会在你服务内找localhost:XX/XX, 2:加上 ...

  3. html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面

    判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...

  4. JS 判断手机端跳转

    第一种方法: function is_mobile() { var regex_match = /(nokia|iphone|android|motorola|^mot-|softbank|foma| ...

  5. js判断手机端和pc端以及微信浏览器

    方法一: if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {console.log('this is wap ...

  6. js判断手机端和pc端

    var browser = { versions: function() {var u = navigator.userAgent, app = navigator.appVersion;return ...

  7. ipa在线安装搭建_AppCake,手机端签名安装IPA,无需越狱

    对于IPA安装,有很多方式. 例如JSBox脚本.Shu.Pythonista等. 通常,我们比较需要是,签名后再安装,例如越狱工具. 今天给大家推荐一款IPA签名安装工具,AppCake,可以将IP ...

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

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

  9. jquery,js实现手机端全屏轮播图手动滑动+自动切换(autoplay)

    jquery,js实现手机端全屏轮播图 使用了swiper插件,可手动滑动切换也可自动切换 效果图 css代码 只是作为参考,可以根据你自己的需求去改,这里我用的是上下两张背景图,图自行修改 html ...

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

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

最新文章

  1. 错误:No plugin found for prefix spring-boot in the current project and in the plugin groups
  2. 8051中断系统介绍
  3. 7.16模块及软件开发目录规范
  4. 迅雷使用积分制的真正作用和目的   [揭密迅雷]
  5. 提高代码的运行效率 (3)
  6. [paper reading] GoogLeNet
  7. 计算机网络 chapter 6 应用层
  8. 移动技术发展有点跑偏
  9. 一个 C盘搬家 方式.Chrome搬家到D盘
  10. 魔兽世界插件开发-暴雪设计工具/命令
  11. Ray Dalio:经济机器是怎样运行的 (时长30分钟)
  12. 计算机apk文件无法打开,【电脑怎么打开apk文件】电脑如何打开apk文件_电脑上怎么打开apk-系统城...
  13. php 新浪微博登陆,PHP使用新浪微博登入第三方网站实例代码
  14. 每一个赞扬背后都有一两个“慕名而来”,而每一个抱怨背后都有100个“弃你而去”。
  15. SuperMap iServer11i新功能----图例的发布和使用
  16. 你不是菜鸟2:他为什么没过试用期
  17. SQL SERVER 经典语句大全必学(3)——技巧篇
  18. 可取回的国内csgo开箱网站incsgo开箱
  19. 音频电解电容应用方法及经验
  20. S32K系列之ADC

热门文章

  1. 架构篇:大型网站技术架构
  2. 这是目前为止5G最完整的PPT
  3. 看了Google大神Jeff Dean的传说后,我跪了!这才是真的大神
  4. 期待已久的Java 9 今日正式发布,新特性解读
  5. 黑客攻击「宝贝回家寻子网」致数据丢失:丧尽天良
  6. 中国 X86 服务器市场 10 年来首次负增长
  7. 到底该如何理解 Unix/Linux 的文件系统?看这篇就知道了
  8. 创建一个简单tcp服务器需要的流程
  9. egret 白鹭引擎学习笔记-写在前面的话
  10. 自动化测试 短信验证登录