H5页面唤起app

时间:2022-11-18 19:13:15

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打开)

未完待续,坑那么多,还待踏平。。。。