移动互联时代,很多互联网服务都会同时具备网站以及移动客户端,很多人认为APP的能帮助建立更稳固的用户关系,于是经常会接到各种从浏览器、webview中唤醒APP的需求,显然,这对于前端开发人员来说,是一件很纠结的事。
唤醒APP
目前常见的主动唤醒APP方式有几种:
Url scheme
Url scheme是iOS,Android平台都支持,只需要原生APP开发时注册scheme, 那么用户点击到此类链接时,会自动跳到APP。比如
1 2 3 4 |
<!-- 打开考拉APP首页 --> <a href="kaola://www.kaola.com">打开APP</a> <!-- 呼叫号码 --> <a href="tel://13788889999">打开拨号</a> |
如果配置scheme的路径,并在app中识别,则可以直接打开APP特定页面,如下:
1 2 |
<!-- 打开考拉APP商品详情 --> <a href="kaola://www.kaola.com/product/8342.html">打开APP商品详情</a> |
上述的链接,需要考虑手机是否支持此Scheme:
支持:弹出相应程序;
不支持:错误处理情况因平台而异,部分app会直接跳错误页(比如Android Chrome/41,iOS中老版的Lofter); 也有的停留在原页面,但弹出提示“无法打开网页”(比如iOS7);iOS8以及最新的Android Chrome/43 目前都是直接停留在当前页,不会跳出错误提示。
总体来看, iOS的支持程度比Android好,iOS在实际使用中,除非明确禁止的(比如微信),很少碰到不支持的情况;Android平台则各个app厂商差异很大,比如Chrome从25及以后就不再支持通过js触发(非用户点击),设置iframe src地址等来触发scheme跳转。
Android intent
这是Android平台独有的,使用方式如下
1 2 3 4 5 6 7 8 |