从手机web页面打开APP

返回 使用微信阅读
请用微信扫一扫
Jack

由于公司任务需要,今天做了一种不借助第三方应用在iPhone 手机浏览器里就能实现检测应用安装就打开、未安装就进Appstroe下载的功能,分享给大家。

先贴代码

<script type="text/javascript" >
var timeout;
function open_appstore() {
 window.location='https://itunes.apple.com/cn/app/hu-lu/id627370076?mt=8';
}
function try_to_open_app() {
 timeout = setTimeout('open_appstore()', 300);
}
</script>

页面代码如下:

<a onClick="try_to_open_app()" href="searchfriendxxhulu://546514"  style="color:red;display:inline-block; width:500px; height:200px; line-height:200px; text-align: center;">打开呼噜</a>

其实原理很简单:

1.连接的指向打开应用

2.onclick触发延时打开App Store下载应用页面

因为当你点击连接的同时是打开应用现时300ms后打开下载页面,如果应用成功打开生命周期就是激活状态,那么浏览器的状态是进入后台,页面里的所有操作都被注销了,显然timeout会被clear掉,但如果你没有成功打开应用即返回404,那么300ms到页面当然会自动跳转了。这里需要注意a元素的target不能是“_blank”。
这种方式使用有两个缺点:

1.如果应用没有安装的话页面在跳转至App Store的同时会弹出打不开网址的提示。当然将连接协议改成itms-apps://可以避免

2.在设计过程中文案只能是“打开应用”之类,因为检测过程是由safari自动实现的

阅读数  61699