H5页面唤起app
H5页面唤起app可以看作是app之间的跳转,浏览器本身就是一个app
1、可以唤起app的方式
- schema
- ios9的Universal Link
2、ios9以下及安卓的唤起
安卓稳定的唤起方式
页面创建iframe,iframe指向schema
var ifr = document.createElement('iframe');
ifr.src = ''; //schemaUrl eg ABC://abc.com
ifr.style.display = 'none';
document.body.appendChild(ifr);
var loadDateTime = new Date();
//通过定时判断手机内是否安装有app,如果手机内安装有app则启动app再返回浏览器页面的时间>1s
window.setTimeout(function () {
document.body.removeChild(ifr);
var timeOutDateTime = new Date();
var diffTime = timeOutDateTime-loadDateTime;
if (diffTime < 1100) {
//进入下载页
window.location.href = '';
}
}, 1000);
ios9以下也可以用上面的方式唤起,但是使用iphone5s,ios系统8+测试发现diffTime 大部分次数 <1100,所以即使安装有app也会跳下载页
也有人使用“尝试唤起”的方式,没有判断是否安装app,无论是否app被正常唤起,返辉浏览器都会进入到下载页(个人觉得用户体验并不好)
3、ios9的唤起
ios9苹果公司新技术(Universal Link),即只需要在apple-app-site-association的文件中配置需要唤起app的url既可以。
Universal Link存在一下弊端
-apple-app-site-association中配置的url并不会随着app的启动而更新,需要重装app或者更新升级app才会生效。
-即使apple-app-site-association中配置的url生效,但是客户端也需要对这些url进行解析
如果可以解决以上的两个问题,觉得Universal Link还是有优势的,首先是apple自带的一栏提示(类似是否用XXapp打开)
未完待续,坑那么多,还待踏平。。。。