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

H5页检测手机是不是安装app 相关流程

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

初稿出处: sunsmeill   

新近铺面索要针对享受流程展开优化,其中一些就是前者H5检测是不是安装使用,来举行分裂的判断(下载或直接跳转到app中)。原理很简短:创立一个如何用js检测手机是否安装某个app,android检测手机是否安装某个app。iframe去打开uri。假使打开app成功网页进入后台,再切换回来时间会当先2.5s。应用时间去检测。下边来看具体贯彻进程:

近些年集团索要针对享受流程举办优化,其中一些就是前端H5检测是或不是安装使用,来拓展不相同的判断(下载或直接跳转到app中)。原理很粗略:成立一个iframe去打开uri。假诺打开app成功网页进入后台,再切换回来时间会当先2.5s。选择时间去检测。下边来看具体贯彻进度:

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

您恐怕会蒙受的题材

  • 怎么是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详解

用这一个链接大家得以跳转到
应用中的某个页面,并得以引导一定的参数。那几个是我们已毕这些效果的前提哟。

切实贯彻

具体落实

相关文章