浏览器唤起APP的功能应该很常见了,观察发现,各大APP在这方面没有一个完美的解决方案。分享下我们的解决方案。需求是这样的:点击一个连接,如果已经安装了这款app则呼起,跳转到指定页面,如果没有安装则跳触屏的指定页,触屏没有该页面,跳转到下载页。
思路:APP内添加scheme,安装app到手机时,同时在手机上注册一个这个scheme URL。在系统需跳转到这个URL,如果手机上存在这个URL则会呼起app,如果没有则不会做任何事情。
JS 实现
JS是没有办法判断当前设备有没有安装APP的,所以,在打开唤起链接100ms(ios9 3500ms)以后,打开备选链接。
存在问题:
1.腾讯系APP内打不开,因为腾讯阻止了scheme方式的跳转。
2. 在IOS9+,未安装APP的设备,一进来会弹出一个“无法打开网页”的弹框,原因是唤起链接没有响应。
解决办法(未使用):
安卓端目前没方案,ios端通过通用链接可以解决,也就顺带解决了问题2。
通用链接原理:
在网站根目录下放置配置文件,ios会去下载这个配置文件。当用户方位https://www.jinhui.com/gotoPage时,开打我们的APP。这种方法因为是http不会被微信拦截。