如何用js检测手机是否安装某个app,android检测手机是否安装某个app

H5页检查和测试手提式有线电话机是还是不是安装app 相关流程

2017/04/21 · HTML5 · 2
评论 ·
H5

初稿出处: sunsmeill   

新近铺面索要针对享受流程展开优化,个中一些正是前端H5检查和测试是不是安装使用,来拓展不一样的判断(下载或直接跳转到app中)。原理很简短:创立2个iframe去打开uri如何用js检测手机是否安装某个app,android检测手机是否安装某个app。。假设打开app成功网页进入后台,再切换回来时间会当先2.5s。行使时间去检查和测试。上边来看现实得以实现进度:

多年来供销社索要针对享受流程展开优化,当中一些就是前端H5检查和测试是不是安装使用,来拓展不一样的判断(下载或直接跳转到app中)。原理很简短:创立2个iframe去打开uri。如果打开app成功网页进入后台,再切换回来时间会超越2.5s。利用时间去检查和测试。上面来看现实贯彻进度:

//html代码中 的 a 标签,以微信为例,默认的是调用weixin scheme,去打开本机的微信,如果没有则跳转到相应连接
    <a href="weixin://" class="btn-download">立即打开</a>
  
    // 为btn-download 绑定事件,如果在500ms内,没有解析到协议,那么就会跳转到下载链接 
     var appstore, ua = navigator.userAgent;
        if(ua.match(/Android/i)){ 
            appstore = 'market://search?q=com.singtel.travelbuddy.android';
        }
        if(ua.match(/iphone|ipod|ipad/)){
            appstore = "https://itunes.apple.com/cn/app/wei-xin/id414478124?mt=8&ign-mpt=uo%3D4"; 
        }
        function applink(fail){  
            return function(){  
                var clickedAt = +new Date;  
                // During tests on 3g/3gs this timeout fires immediately if less than 500ms.  
                setTimeout(function(){  
                     // To avoid failing on return to MobileSafari, ensure freshness!  
                      if (+new Date - clickedAt < 2000){  
                          window.location = fail;  
                      }  
                }, 500);      
            };  
        }  
        $('.icon-download, .btn-download')[0].onclick = applink(appstore);
public static boolean isAvilible(Context context, String packageName){
    //获取packagemanager
    final PackageManager packageManager = context.getPackageManager();
    //获取所有已安装程序的包信息
    List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
    //用于存储所有已安装程序的包名
    List<String> packageNames = new ArrayList<String>();
    //从pinfo中将包名字逐一取出,压入pName list中
    if(packageInfos != null){
        for(int i = 0; i < packageInfos.size(); i++){
            String packName = packageInfos.get(i).packageName;
            packageNames.add(packName);
        }
    }
    //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
    return packageNames.contains(packageName);
}

你恐怕会遇上的标题

  • 怎么是uri,获取uri需求怎样援救?
  • 安卓中运用切换来后台, 计时器仍会不停止运输转有何样化解办法?
  • 微信中不帮忙第壹方uri,下载应用。怎么消除来形成跳转到本身app。

都会在文中找到答案。

你可能会遇上的难题

  • 如何是uri,获取uri须求什么扶助?

  • 安卓中采取切换成后台, 计时器仍会持续运营有什么样消除办法?

  • 微信中不扶助第壹方uri,下载使用。怎么消除来完毕跳转到自个儿app。

都会在文中找到答案。

  

 

uri获取

此处的uri,指得便是经过 Url scheme
来达成的H5与安卓、苹果应用之间的跳转链接。

小编们须要找到客户端的同事,来赢得如下格式的链接。

xx://’跳转页面’/’辅导参数’

1
xx://’跳转页面’/’携带参数’

此处给大家简单表明下url scheme。

url 就是大家日常精晓的链接。
scheme 是指url链接中的最初地点,正是上面链接中 ‘xx’的职位。
详尽介绍能够看这里:使用url scheme详解

用那个链接大家能够跳转到
应用中的有些页面,并得以教导一定的参数。那一个是大家实现这么些职能的前提哟。

uri获取

那里的uri,指得正是通过 Url scheme
来兑现的H5与安卓、苹果采纳之间的跳转链接。

大家需求找到客户端的同事,来收获如下格式的链接。

xx://'跳转页面'/'携带参数'

此间给大家不难表明下url scheme。
url 正是我们日常通晓的链接。
scheme 是指url链接中的最初地点,正是上边链接中 ‘xx’的位置。
详细介绍能够看那里:使用url
scheme详解

用那一个链接大家得以跳转到
应用中的有个别页面,并能够指导一定的参数。那么些是我们兑现那一个功用的前提哟。

切实贯彻

切切实实落实

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图