HBuilder使用:微信唤醒APP,无APP则下载
1,需要注册URL schemes(URL schemes是实现APP之间的跳转的),让网页去唤醒目的APP
2,在index.html中,加入此代码
mui.plusReady(function () {
checkArguments();
});
// 判断启动方式
function checkArguments() {
console.log("plus.runtime.launcher: " + plus.runtime.launcher);
var args = plus.runtime.arguments;
if (args) {
// 处理args参数,如打开新页面等
mui.alert(args, title)
}
}
// 处理从后台恢复
document.addEventListener('newintent', function () {
console.log("addEventListener: newintent");
checkArguments();
}, false);
```
3,在需要进行此操作的页面中,加入,如下代码:
此为点击按钮之后出发此操纵的,也有进入页面就可以出发此操作的
onClickRight(e) {
var ua = window.navigator.userAgent.toLowerCase();
`//判断是否是在微信中打开?`
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
Toast('若想在App打开次页面,请点击右上角,在浏览器中打开');
}
`//判断是否在iOS系统中打开?`
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
window.location.href = "infomarket://"; //ios app协议
window.setTimeout(function () {
window.location.href = "https://itunes.apple.com/cn/app/id477927812";
}, 2000);
}
`//判断是否在安卓系统中打开?`
if (navigator.userAgent.match(/android/i)) {
var ifr = document.createElement("iframe");
ifr.src = "infomarket://?new=" + Math.random();
document.body.appendChild(ifr);
setTimeout(function () {
document.body.removeChild(ifr);
location.href =
"http://information.liangshiyun.com/phone/Android1.apk";
}, 2000);
}
}
有一点需要注意的是:
本地打包的static和index.html需要和线上(服务器)同步,否则,本地改了,打包之后也是没改的样子,这一点,看具体操作,**线上本地要同步**
还有
打包的apk包,可以改下后缀名字(比如infomarket.app改为infomarket.zip),这样可以解压这个apk的包,去找问题
或者,去**浏览器浏览有问题网页**,然后刷新几次,**检查---->Network---->all**,去查看加载的文件,去查找一些问题。我之前就是因为本地代码中**没有alert("唤醒")**,但是**线上却弹出了“唤醒**”,这个时候,本地代码没有,就要去加载的那些css,Js,等等的一些文件中,去搜索,有没有相关内容,如果有,那么就是线上代码和本地代码不同步造成的,如果没有,那就换个思路继续查找问题。
本文地址:https://blog.csdn.net/Crazy_GirlLL/article/details/108705502