最新转载:将 UniLinks 与 Flutter 集成(安卓 AppLinks + iOS UniversalLinks)
前言
在h5中通过URl Scheme唤醒app的配置有如下三种:
1,iframe标签
不管是ios还是安卓,浏览器都不可能知道手机有没有装某个app,所以方法是首先通过URL scheme打开app,如果打不开,则跳转下载链接。
之所以要用iframe打开,而不是直接跳链接,是因为如果APP唤醒失败,或者APP未安装的话,很多时候都会跳到错误页,影响用户体验。而iframe方法不会引起页面可见的变化(例如页面内容变成一个新页面),不会导致浏览器历史记录的变化。
iframe方案的唤起原理是: 程序切换到后台时,计时器会被推迟(计时器不准的又一种情况)。如果app被唤醒那么网页必然就进入了后台,如果用户从app切回来,那么时间一般会超过2s; 若app没有被唤起,那么网页不会进入后台,setTimeout基本准时触发,那么时间不会超过2s。
2,a标签