Deep Linking(深度鏈接)
這里講的Deep Linking(深度鏈接),在PC開發(fā)中是指指向首頁的鏈接或是指向具體內(nèi)容頁的鏈接溉贿。在移動端開發(fā)中deep linking 則是指app 在 handle 特定 URI 的時候可以直接跳轉(zhuǎn)到對應的內(nèi)容頁或觸發(fā)特定邏輯鲜结,而不僅僅是啟動 app。深度鏈接好處:
- 便于用戶訪問,提高用戶體驗
- 傳播便捷,為營銷提供了一種全新的工具
Deep Linking實現(xiàn)
目前處理 deep linking露该,主要有兩種方式:
Custom URL Scheme
在 universal links 出現(xiàn)之前的很長一段時間里,iOS 上主要通過 custom URL scheme 來實現(xiàn) deep linking琳疏,以及 app 間的通信有决。
在info plist里設置自定義URL后,handle URL的入口是app delegate方法 application:openURL:sourceApplication:annotation:(iOS 9 開始被 deprecate)或 application:openURL:options:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
BOOL handled = NO;
// code to handle the URL
return handled;
}
1空盼、沙盒機制
iOS系統(tǒng)針對安全問題,使用了沙盒機制來保障用戶的安全和隱私新荤,但是這一機制也阻礙了應用間合理的信息共享揽趾,于是提出了URL Schemes解決辦法。 沙盒機制:應用只能訪問它聲明可能訪問的資源
苛骨。
2篱瞎、URL Schemes
URL Schemes:一個可以讓APP間互相跳轉(zhuǎn)的協(xié)議苟呐,通過URL Schemes可以跳轉(zhuǎn)到應用的具體內(nèi)容頁面。
3俐筋、實現(xiàn)方式
Universal Links (在 iOS 9 上引入了 universal links)
Universal links 的具體實現(xiàn)可以參考官方文檔:Support Universal Links。簡單來說你需要:
- 添加一個 apple-app-site-association 文件到你的網(wǎng)站來描述 URL 和 app 的關(guān)聯(lián)澄者。
- 添加 com.apple.developer.associated-domains entitlement 來指定要從哪些域名查詢 universal links support笆呆。
- 在 app delegate 的 application:continueUserActivity:restorationHandler: 方法中 handle userActivity.webpageURL。
1粱挡、實現(xiàn)步驟
(1)赠幕、首先需要在developer.apple.com注冊一個APP
(2)、準備一個Universal link的域名(domain)
(3)询筏、在APP Indentifier中啟用Associated Domains
(4)榕堰、在Xcode中啟用Associated Domains
(5)、將 Domain信息填寫到Xcode - APP Indentifier
(6)嫌套、為你的Domain申請ssl證書
(7)逆屡、創(chuàng)建Apple - APP - site - association Json 文件
(8)、使用ssl證書簽名你的Json 文件
(9)踱讨、配置你的服務器將Json 文件上傳到服務器
(10)魏蔗、編寫解析鏈接和跳轉(zhuǎn)代碼
Deep Linking技術(shù)支持
第三方平臺
DeepShare(http://deepshare.io/):幫助開發(fā)者打破WEB和APP之間的信息壁壘,實現(xiàn)APP的內(nèi)容直達及監(jiān)測
LinkedME(https://www.linkedme.cc/):讓APP不再是信息的孤島----增強運營轉(zhuǎn)化+實現(xiàn)流量變現(xiàn)