JS判断手机端是否安装了某个客户端APP应用
最近在做项目的wap版,有个需求就是,先判断手机上是否有我们的APP应用,如果有的话打开应用,没有才跳转到wap页面。
wap简单来说就是运行在移动端浏览器上的网站。不管应用在什么地方,总之就是浏览器呗,可以通过JS来判断本地是否有某应用,实现方式实际就是将http协议转为本地软件协议。
还是直接贴代码吧。
如下:
<scriptlanguage="javascript">
if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)){
varloadDateTime=newDate();
window.setTimeout(function(){
vartimeOutDateTime=newDate();
if(timeOutDateTime-loadDateTime<5000){
window.location="要跳转的页面URL";
}else{
window.close();
}
},
25);
window.location="appscustomurlschemes";
}elseif(navigator.userAgent.match(/android/i)){
varstate=null;
try{
state=window.open("appscustomurlschemes",'_blank');
}catch(e){}
if(state){
window.close();
}else{
window.location="要跳转的页面URL";
}
}
</script>
appscustomurlschemes是什么呢?
其实就是你与APP约定的一个协议URL,你的IOS同事或Android同事在写程序的时候会设置一个URLScheme,
例如设置:
URLScheme:app
然后其他的程序就可以通过URLString=app://调用该应用。
还可以传参数,如:
app://reaction/?uid=1
原理:500ms内,本机有应用程序能解析这个协议并打开程序,调用该应用;如果本机没有应用程序能解析该协议或者500ms内没有打开这个程序,则执行setTimeout里面的function,就是跳转到你想跳转的页面。
其他资源:
http://blog.csdn.net/jerryvon/article/details/7489573