前两天开发遇到的问题,领导想要的效果就是APP分享出去的链接能够直接打开APP,或者是能够直接到下载app的地方!百度了一下,发现前端要做的东西其实并不多,但是领导想要的是打开应用宝或者是打开APP Store下载应用之后打开app然后到指定位置,并且传参解析指定数据!
百度和谷歌之后发现前者实现很容易,但是后者,目前并没有实现!因为发现某些APP是可以做到的,但是比对某app分享之后打开时的链接路径,然后使用同样的方法,结果发现还是不行!
后经询问产品之后放弃了下载之后的传参!
现在说一下app唤醒的方法吧:
安卓:
var appsrc = 'chai://js.openApp/sharevideo/data?shareid='+**
window.location.href = appsrc
ios:
var appsrc = 'chai://js.openApp/sharevideo/data?shareid='+**
window.location.href = appsrc
对的,你没看错,app端ios把打开的方式设置的和安卓一样
为的是能够统一打开路径,但是,我在h5里写的方法依然是两种,因为打开的时候需要计时器判断是否打开了app,然后需不需要跳到下载页面,所以我是分开写的
详解一下参数:
[scheme://authority/path/data?dataobj=123
scheme:应用设置的应用名称,用于打开
authority:打开说明
path:打开路径
data:参数名字
?:后头是参数传值
dataobj:key 123:value
其他一些东西就是app端去设置了
检测是否直接打开app然后跳转下载:
var initialTime = new Date();
var counter = 0;
var waitTime = 0;
var checkOpen = setInterval(function(){
counter++;
waitTime = new Date() - initialTime;
if (waitTime > 2500) {
clearInterval(checkOpen);
}
if (counter < 100) return;
const hide = document.hidden || document.webkitHidden;
if (!hide) {
clearInterval(checkOpen);
openDondload();
}
}, 20);
思路就是openapp scheme之后去检测document是否隐藏了,counter是多久之后在检测到document还在显示的时候进行打开下载页面,openDondload函数是打开下载,waitTime是多久之后清除整个计时器
希望对大家有帮助!欢迎各位进行指教!