手机如果安装了该应用,就直接打开该应用;如果没有安装该应用,就下载该应用。那么下面就对在浏览器中,用js判断某用户是否安装了该应用,并判断是否打开该应用做个简单的介绍。
那么,怎么判断某用户是否安装了某应用呢?
在这里,先写段js代码,如下:
<script>
function isInstalled(){
alert("11")
var the_href="https://itunes.apple.com/us/app/%E7%99%BE%E7%BA%AC%E5%81%A5%E5%BA%B7-%E4%B8%93%E5%AE%B6%E9%97%AE%E8%AF%8A-%E5%81%A5%E5%BA%B7%E6%8A%A5%E5%91%8A%E8%A7%A3%E8%AF%BB-%E4%BD%93%E6%A3%80%E9%A2%84%E7%BA%A6/idxxxxxxxx?mt=x";//获得下载链接
window.location.href="palmos://";//打开某手机上的某个app应用
setTimeout(function(){
window.location.href=the_href;//如果超时就跳转到app下载页
},2000);
}
isInstalled();
</script>
下面对这段js代码做一个简单的解析:首先试着打开手机端某个app的本地协议;如果超时就转到app下载页,下载该app。
"palmos://"是什么呢?它是在iOS客户端设置一个URL Scheme名字,示例设置的是:palmos 如图:
同时设置白名单:
此时URL Scheme和白名单设置完成就可以调起APP了。
打开Safari并输入:palmos://
如图1:
图2:
最后是跳转到制定界面设置:
在这设置:palmos://action/?param=1
//js
window.location.href="palmos://action/?param=1";//打开某手机上的某个app应用,传参数
APP启动回调实现
//OC
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"%@",url);
//对url操作处理,并制定跳转实现部分
//......
//跳转实现部分
//......
return YES;
}
打印数据
...11:34:03.402228+0800 baiweijk4iphone[1661:958328] handle choose card
function:-[BWAppDelegate application:openURL:sourceApplication:annotation:] line:531 content:palmos://action/?param=1
//即:palmos://action/?param=1(打印数据)