关于H5唤醒APP的功能实现(千辛万苦啊!)
来源:互联网 发布:大连知你创业基地 编辑:程序博客网 时间:2024/05/20 21:43
啥话不说,先上js代码
//启动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,如果能正常打开,会直接切换到APPvar ifr = document.createElement('iframe');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;}});}}}整理了一下,定时器还是不好用,这也是没办法的办法了,网上大多的教程都是定时器,不是定时器的我又不明白人家啥意思,而且大部分都是安卓的,ios就是个坑,safari不支持iframe的跳转,就搞的我人都凌乱了,只能自己想办法,这个之前那个两个定时器控制的调转差不多,将就着看吧
4 0
- 关于H5唤醒APP的功能实现(千辛万苦啊!)
- H5 唤醒Android App
- H5 唤醒Android App
- H5页面如何唤醒app
- 支付宝H5唤醒APP
- 支付宝H5唤醒APP
- H5页面唤醒本地APP的处理方式
- H5唤醒App打开,scheme大小写遇到的坑
- 关于睡眠唤醒实现开机功能
- 线程的挂起与唤醒之实现app加载广告点击跳转功能
- 线程的挂起与唤醒之实现app加载广告点击跳转功能
- H5页面如何唤醒app改进篇
- 关于h5界面无法用a标签在app内唤醒支付宝微信跳转
- 关于H5+App的开发注意事项
- 关于H5唤起APP遇到的问题
- 关于h5-app的一些css样式
- H5页面唤醒App及App之间跳转
- Android 实现类似IOS App唤醒的代理方法
- redis持久化详解
- hdu 1116 poj 1386 欧拉回路并查集
- 编写联系人list
- 组播MAC地址
- Spring 各个jar包的作用
- 关于H5唤醒APP的功能实现(千辛万苦啊!)
- List<Object>删除某一个Object
- 用pybrain构建BP神经网络
- Cannot find the declaration of element 'beans'. 的解决方法
- Mac 下 Intelij idea 的快捷键
- CentOS6.4+Nginx1.4.2+MySQL5.6.13+PHP5.5.3+xCache3.03(最新LNMP编译安装过程)
- MyISAM与InnoDB的区别
- vmware虚拟机Linux(redhat)上用户密码忘记了怎么办?
- Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法