最近公司項目要求在web網(wǎng)頁端引導用戶打開native APP
這個需求也很簡單,相信我們大多數(shù)人的做法都是和web端商議,確認一個特殊的字符串,我們稱之為scheme。我們在APP端設置好scheme,web端遇到想要打開APP的時候,只需要打開一個這樣scheme://的url,我們也可以在//后面?zhèn)鬟f參數(shù),只需要在AppDelete的代理中做相應的處理即可。
scheme的設置方法如圖所示

scheme 設置圖
Apple 在iOS9 時候?qū)cheme 拉起應用做了一定的限制,有時會遇到不能拉起APP的情況。
在使用scheme打開其他APP時候,iOS9以上適配時候,記得在info.plist里面設置白名單
白名單設置方法參考
http://blog.csdn.net/xiaoxiaobukuang/article/details/51062963
iOS9 也給我們提供了一個新的拉起方式---通用鏈接
通用鏈接-服務端的配置
- 我們需要創(chuàng)建一個json 格式的文件,文件名為 apple-app-site-association ,不要有后綴名
- 將json 文件放在我們服務器的根目錄或者.well-know的子目錄下
- json 里面的AppID 由teamID + bundIeID組成
- paths 代表URL部分路徑,只有在 域名+paths 路徑符合時候才會拉起APP,* 則代表不管路徑,只要域名符合都會打開
- json 文件只會在第一次安裝時候下載,不會隨服務器更改而自動更新
Apple官方提供了專門檢測工具,您可以通過https://search.developer.apple.com/appsearch-validation-tool/ 進行檢測
您可以通過是用 https://www.pinterest.com/ 查看正確返回結(jié)果樣式
{
"applinks": {
"apps": [],
"details": [
{
"appID": "***********.com.abc.def",
"paths": [ "/sdk/news/details", "/videos/detail/8484339/" ]
},
{
"appID": "###########.com.abc.def",
"paths": [ "*" ]
}
]
}
}
附查看teamID的方法,需要打開 蘋果開發(fā)者中心后臺 https://developer.apple.com/

查詢 teamID 方法
通用鏈接- 客戶端的配置
- 在我們項目的 target 里面選擇Capabilities ,打開Associated Domains ,注意添加域名的格式,前邊要加applinks:

target 里設置域名
- 在XCode 中AppDelegate 中添加代碼支持

AppDelegate 中代碼
如何檢測是否設置成功
1.您可以將支持的鏈接拷貝在備忘錄中,長按如果有“在APP 中打開” ,即說明設置成功
2.在Safari 中進行驗證,輸入支持的鏈接,滑動Safari 會有彈窗顯示,是否在APP中打開
*** 第一次寫這么多,文筆有點差勁,請大家多多見諒,有寫的不周到的地方,請大家不吝指教 ***