App中页面分享到第三方app(微信、微博)或在浏览器打开时,有时须要提供打开app的功能。html
目前有两种实现方式:(手机安装了app)android
1、Andriod经过使用应用宝打开,ios经过app store打开。ios
实现方式:在html页面中将<a>标签href属性设定为下载app的url,当点击a标签更改window.location时,就会打开对应的app。浏览器
弊端:经测试在ios 9及如下版本和android中若是不安装应用宝,点击下载连接url时不会直接打开app,而是会跳转到app的下载界面。微信
2、经过在app中配置url scheme本地协议(手机安装了app)app
弊端:不管是在ios仍是andriod系统中,微信都不支持直接打开app,可是能够经过浏览器二次跳转来解决。jsp
实现方式(以ios为例):ide
html代码:测试
<!DOCTYPE html>url
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>打开app的页面</title>
</head>
<body>
<button id="openApp">点击这里app</button>
</body>
<script>
function isInstalled(){
window.location=" devzeng://";//打开某手机上的某个app应用,后能够带参数
setTimeout(function(){
window.location="http://a.app.qq.com/o/simple.jsp?pkgname=com.lechange.x.robot.phone";//若是超时就跳转到app下载页
},2000);
}
var open = document.getElementById('openApp');
open.onclick = function(){
isInstalled();
}
</script>
</html>
建立URL Scheme
一、首先在*-Info.plist中添加一行,选择URL types,效果以下图所示:
二、在展开的Item 0中填写URL identifier,这个用来惟一标识用户自定义的URL Scheme,推荐使用域名的反转形式,如:com.devzeng.demo
三、在Item 0中添加新的一行,选择URL Schemes
四、展开URL Schemes,在Item 0中输入自定义的Scheme的名称。在这里只须要输入自定义的Scheme的名称便可,不须要加上://,例如这里输入的是devzeng,那么对应的自定义的URL就是devzeng://,这里能够输入多个。
5.完整
经测试以上步骤没有问题,
参考资料:http://blog.163.com/l1_jun/blog/static/1438638820156254120715/
http://blog.csdn.net/henrywulibin/article/details/52087041