JS检测APP是否安装的情况
来源:互联网 发布:linux wifi局域网ip 编辑:程序博客网 时间:2024/05/22 00:22
JS检测APP是否安装的情况
我们在浏览网页的时候,你会看到一个网页下面漂浮着一个提示框“打开APP”或者“下载APP的字样”,如果你的手机已经安装过这个APP,那么网页会提示“打开APP”,如果没有安装,那就会提示“下载APP的字样” 这个从技术角度是如何去实现的呢?下面我给大家分享这块技术,去年公司给国际动漫节做项目的时候,客户就提到这个需求,在点击网页企业的时候 那么直接打开APP(如果已经安装了) 如果没有安装过,直接打开APP页面
下面我把这块的源码分享一下
if (navigator.userAgent.match(/android/i)) {
// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
// 否则打开a标签的href链接
var isInstalled;
// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
// 否则打开a标签的href链接
var isInstalled;
//下面是安卓端APP接口调用的地址,自己根据情况去修改
var ifrSrc = 'cartooncomicsshowtwo://platformapi/startApp? type=0&id=${com.id}&phone_num=${com.phone_num}';
var ifr = document.createElement('iframe');
ifr.src = ifrSrc;
ifr.style.display = 'none';
ifr.onload = function() {
// alert('Is installed.');
isInstalled = true;
alert(isInstalled);
document.getElementById('openApp0').click();
};
ifr.onerror = function() {
// alert('May be not installed.');
isInstalled = false;
alert(isInstalled);
}
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
},1000);
}
//ios判断 if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
//Animation://com.yz.animation
var isInstalled;
//var gz = '{"comName":"${com.short_name}","comID":"${com.id}","comPhoneNum":"${com.phone_num}","type":"0"}';
//var jsongz =JSON.parse(gz);
var ifrSrc = 'cartooncomicsshowtwo://platformapi/startApp? type=0&id=${com.id}&phone_num=${com.phone_num}';
var ifr = document.createElement('iframe');
ifr.src = ifrSrc;
ifr.style.display = 'none';
ifr.onload = function() {
// alert('Is installed.');
isInstalled = true;
alert(isInstalled);
document.getElementById('openApp0').click();
};
ifr.onerror = function() {
// alert('May be not installed.');
isInstalled = false;
alert(isInstalled);
}
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
},1000);
}
//ios判断 if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
//Animation://com.yz.animation
var isInstalled;
//var gz = '{"comName":"${com.short_name}","comID":"${com.id}","comPhoneNum":"${com.phone_num}","type":"0"}';
//var jsongz =JSON.parse(gz);
//下面是IOS调用的地址,自己根据情况去修改
var ifrSrc = 'Animation://?comName=${com.short_name}&comID=${com.id}&comPhoneNum=${com.phone_num}&type=0';
var ifr = document.createElement('iframe');
ifr.src = ifrSrc;
ifr.style.display = 'none';
ifr.onload = function() {
// alert('Is installed.');
isInstalled = true;
alert(isInstalled);
document.getElementById('openApp1').click();
};
ifr.onerror = function() {
// alert('May be not installed.');
isInstalled = false;
alert(isInstalled);
}
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
},1000);
}
}
var ifrSrc = 'Animation://?comName=${com.short_name}&comID=${com.id}&comPhoneNum=${com.phone_num}&type=0';
var ifr = document.createElement('iframe');
ifr.src = ifrSrc;
ifr.style.display = 'none';
ifr.onload = function() {
// alert('Is installed.');
isInstalled = true;
alert(isInstalled);
document.getElementById('openApp1').click();
};
ifr.onerror = function() {
// alert('May be not installed.');
isInstalled = false;
alert(isInstalled);
}
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
},1000);
}
}
大家在做的过程中需要注意两个问题:1、接口地址一定要写对,大家可以查一下schema协议,通过这个协议调用的 2、在做用安卓的时候 如果用微信扫一扫或者QQ浏览器扫码功能的时候 使用上面的协议会存在问题的 就是必须用APK上架到腾讯应用市场上去
源码下载地址:http://download.csdn.net/detail/wangliang198901/8695049
本文章属于原创
作者:汪亮
1 0
- JS检测APP是否安装的情况
- JS检测APP是否安装的情况
- JS如何检测手机上APP是否安装的情况
- 【Android】检测app是否安装、安装并打开的方法
- Android中检测App是否安装的方法.
- js 检测 是否安装abode
- js判断本地是否安装app,未安装去下载,已安装打开本地的app
- js检测flash是否安装,及其版本
- 检测app是否存在的Html
- 如何检测自己的APP是否卡
- JS检测是手机否安装App并打开,否则跳转App Store的方法
- js判断本地是否安装app
- js判断移动端APP是否安装
- js判断本地是否安装app
- js判断是否安装app,安装打开app
- Android检测是否安装了某个应用,同时进行App间的跳转
- h5网页检测手机是否安装了app。
- 页面是否被框架的js检测
- Android 手势&触摸事件
- 石子归并
- font-family 定义的最后为什么要加一句sans-serif
- 我国启动测绘地理信息军民深度融合发展战略 将建立军民通用国家标准体系
- PsoProcess-PSO-matlab
- JS检测APP是否安装的情况
- linux平台下C语言实现一个简单的httpsever
- 用Qt自动绘制路口
- 数据结构之关于树的操作(树的递归和非递归遍历)-(四补)
- HDU1541 Stars【树状数组】
- 设计模式(十六)中介者模式(Mediator)-行为型
- 做ajax搜索框自动提示功能的体会
- HDU 4570 - Multi-bit Trie(区间DP)
- 《剑指Offer》学习笔记--面试题35:第一个只出现一次的字符