android h5app息屏定时器,关于H5唤醒APP的功能实现(千辛万苦啊!)

b4d98f66e034d40f4b2696b615a9031a.png

//启动app方法

function startApp(url, url2) {

//url是跳转的scheme地址,这个建议下个反编译的软件,去第三方apk查他们设置的scheme_url和scheme_host是什么,我就是这样干的

//url2是应用下载地址,要分清ios和android的不一样

//将下载地址保存到全局变量

downloadUrl = url2;

if (ua.match(/ipad|iphone|ipod|ios/i)) {

//外部一个定时器,专门盯着启动app的定时器loop;就叫它killer吧

//计时6秒,之后干掉loop.

window.setTimeout(function() {

$('#message').html('');

$('.result-message').eq(0).css("display", "none");

clearTimeout(loop);

time = parseInt('6000') / 1000;

}, 6000);

//尝试启动应用

location.href = url;

//同时开始应用启动倒计时

countDown();

} else {

//安卓的就是用iframe来测试是否安装和启动应用了

window.setTimeout(function() {

$('#message').html('');

$('.result-message').eq(0).css("display", "none");

clearTimeout(loop);

time = parseInt('6000') / 1000;

}, 6000);

//创建iframe并启动应用入口

openApp(url);

}

}

function openApp(src) {

// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP

ifr.src = src;

ifr.style.display = 'none';

document.body.appendChild(ifr);

//切换到iframe时

//此时,会有个问题,如后切换到应用时间小于killer所需要杀死loop的时间,loop就会跳到下载提示,killer`就失去作用了

countDown();

window.setTimeout(function() {

document.body.removeChild(ifr);

}, 5000);

//倒计时

}

function countDown() {

//每秒调用一次

loop = window.setTimeout('countDown()', 1000);

if (time > 0) {

$('.result-message').eq(0).css("display", "block");

$('#message').html('正在尝试打开客户端 ' + time + 's');

time--;

if (time == 0) {

/*if(ua.match(/ipad|iphone|ipod|ios/i)){

console.log(downloadUrl);

location.href = downloadUrl;

}*/

//如果计时到0,loop任然没被干掉,就说明应用没有启动,此时,跳到下载提示界面

//定时器的局限性还是很大,不能响应式反应,所以只能做到这一步了

$('#message').html('');

$('.result-message').eq(0).css("display", "none");

clearTimeout(loop);

time = parseInt('6000') / 1000;

var btnArray = ['否', '是'];

mui.confirm('您没有安装该应用,是否下载安装包?', '应用下载', btnArray, function(e) {

if (e.index == 1) {

location.replace(downloadUrl);

} else {

return;

}

});

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值