您好,登錄后才能下訂單哦!
一、 通用鏈接介紹
Apple 推出通用鏈接:一種能夠方便的通過傳統 HTTP 鏈接來啟動 APP, 使 用相同的網址打開網站和 APP。
當你的應用支持通用鏈接,iOS9 之后 , 用戶可以點擊一個鏈接跳轉到你的網站,并獲得無縫重定向到您安裝的應用程序,而無需通過 Safari 瀏覽器。如果你的應用不支持的話,點擊鏈接將會用 Safari 來打開。
二、通用鏈接的優點
通用鏈接比自定義的URL鏈接有幾處尤為突出的好處,具體來說,通用鏈接:
獨特性:與自定義的URL鏈接相比,通用鏈接不能被其他的應用程序所訪問,因為
它們使用的是標準的HTTP 或 HTTPS 鏈接到你的網站。
安全性:當用戶安裝應用程序,iOS會檢查您已經上傳到web服務器文件,以確
保您的網站允許你的應用程序能打開代表它的URL 文件,只要你創建并且上傳該
文件,那么你的應用和服務器之間的關聯是安全的。
靈活性:當你的應用程序沒有被安裝的時候,通用鏈接照樣能夠工作。當用戶沒有
安裝你的應用程序,點擊該鏈接,將會以用戶所期望的以Safari的形式訪問。
簡單性:通用鏈接既能支持你的網站,又能支持你的應用
私有性:其他的應用程序能和你的應用程序通信,不管你的應用是否被安裝。
傳統例子:
傳統的密碼重置流程是這樣的:
1, 您忘記了密碼,讓你點擊“忘記密碼”按鈕,在應用程序l 輸入您的電子郵件,并點擊下一步
2, 請檢查您的電子郵件,點擊重置密碼鏈接
3, Safari中的密碼重置頁面打開
4, 您輸入新密碼并保存
5, 切換回應用程序,并登錄使用表示新密碼
使用通用鏈接后:
隨著通用的鏈接,我們可以從過程中完全刪除 Safari 瀏覽器。 現在,用戶可以重新 設置在應用程序的密碼,允許應用程序來復位后也自動登錄他們進來。 這是所有可能 的同時還具有重置密碼的電子郵件的安全性,以確認身份。
它可以被用來大大提高以前煩人的工作流程的用戶體驗。
視頻演示:http://t.cn/R4pxxB5 (利用“通用鏈接”改善“密碼重置功能)
使用通用鏈接后有四種打開方式效果:
第一種:安裝客戶端后點擊鏈接(檢測應用是否安裝,如果安裝直接打開應用)
第二種:長按鏈接選擇 Safari 中打開
第三種:長按鏈接選擇在 XXX 中打開
第四種:刪除應用后點擊鏈接(檢測應用是否安裝,如果沒有安裝在 Safari 中 打開網址)
三、 通用鏈接的關鍵實現條件
有一個注冊的域名
域名可通過 SSL 訪問(應該是需要有效的證書)
支持上傳一個 JSON 文件到域名
至少 iOS 9 beta 2 版本
至少 Xcode 7 beta 2
需要真機測試,模擬器不支持通用鏈接
web server 需要支持 https,客戶端需要通告 https 訪問,并且不支持任何重定向
四、 通用鏈接實現步驟
1, 開啟 Associated Domains 域:
進入蘋果Apple Developer --- Member Center - Certificates, Identifiers & Profiles – Identifiers - App IDs
–Edit 然后開啟打鉤 Associated Domains 后保存。
2, 添加 Associated Domains 域:
說明:你的 APP 域名, 必須用 applinks: 前置它:還添加一些你可能 擁有的子域和擴展(www.domain.com, news.domain.com 等等)。
作用:配置之后你的 APP 會自動從你的域名請求一個特殊的 JSON 文 件 apple-app-site-association。當你第一次啟動 APP,它會從 https://domain.com/apple-app-site-association 下載這個文件。
操作:項目 targets->Capabilities->Associated Domains
3, 上傳 apple-app-site-association 文件到服務器的根目錄:
注意事項(1)
1, paths 路徑是大小寫敏感的
2, paths 內容可明確哪些通用鏈接需要被處理,哪些不需要
3, NOT 使用:為了明確指出不被處理的鏈接,可增加 “NOT”在鏈接前面
例 如 "paths": [ "/wwdc/news/", "NOT /videos/wwdc/2010/*", "/videos/wwdc/201?/*"]
4, 你可以使用 * 明確所有的網頁
5, 也可以使用一個明確的的 URL,例如 /wwdc/news/
6, 也可以追加 * 到你的 URL ,例如 /videos/wwdc/2015/*
也可以使用 * 來匹配任何字符,使用 ? 來匹配一個字符,可以在路徑
中使用這種混搭的形式, 例如 /foo/*/bar/201?/mypage
注意事項(2)
1, “appID”組成部分:TeamID + BundleId TeamID
2, BundleId 一定要和 APP 的 BundleId 一致。
3, apple-app-site-association 文件不能帶后綴
4, apple-app-site-association 文件需要上傳到網站根目錄
5, 每一個代表著應用的 字典,必須包含一個 appID 和 paths, appID 是teamID 和 bundleID,paths 是一個字符串的數組 明確著你的應用支持的通用鏈接和你的應用程序不支持的通用連接內容。
6, 內容如下例子
{ "applinks": { "apps": [], "details": { "TBEJCS6FFP.com.domain.App": { "paths":[ "*" ] } } } }
4, 在 APP 里處理通用鏈接:
例子:
為了在 APP 里支持通用鏈接, 你需要在 AppDelegate 里實現[application(_:continueUserActivity:restorationHandler:)]。
部分參考資料:
https://developer.apple.com/ios/download/ (AppleDeveloper)
http://www.cocoachina.com/ios/20150902/13321.html (Cocoachina)
http://www.jianshu.com/p/c2ca5b5f391f (subvertwuxu 簡書)
http://strivingboy.github.io/blog/2015/09/27/ios9 (github blog)
http://stackoverflow.com/questions/33391615/ios-9-universal-links-dont-work http://www.jackivers.me/blog/2015/9/17/list-of-universal-link-ios-9-apps (jack blog)
http://help.tune.com/marketing-console/ios-universal-links-with-tune/
有什么錯誤歡迎大家補充。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。