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