纯属摸索记录。
平时也遇到过这样的需求,虽然实现了,但是感觉不完美,所以,工作之余搜索发现了他人的‘先进’实现方法,于是实验一番,感觉不错。
用到的插件为:callapp-lib
地址:https://github.com/desandro/imagesloaded
具体用法大家去看一下文档,说的很清楚。
我这里只是简单测试了一下。
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
var schemeName='';
if (isAndroid) {
schemeName='Android下的';
}
if (isiOS) {
schemeName='iOS下的';
}
我也不知道为啥俺们的app android跟ios的scheme为啥不一样,所以,我这里简单的根据系统判断了一下。
const option = {
scheme: {
protocol: schemeName
},
appstore: 'app在appstore里的下载地址',
yingyongbao:'app在应用宝里的下载地址',
fallback: '唤端失败后跳转的地址',
};
const lib = new CallApp(option);
lib.open({
path: 'URL Scheme 中的 path 部分'
});
我在我的华为p30 微信里打开地址,首先跳转app在应用宝的下载地址,然后再打开微信默认浏览器,再然后唤起app(假如手机安装了app),如果卸载了就停在了微信默认浏览器中app在应用宝的下载地址页面。
然后又用同事的苹果手机试了一下,微信里直接弹出打开appstore的提示,允许后再跳转app在appstore的下载地址,没有hu唤起app。
目前感觉Android里面还可以,就是唤起步骤太繁琐了。