iOS 9 universal link 通用鏈接實現(xiàn)

? ? ? 近期發(fā)現(xiàn)微信登錄跳轉(zhuǎn)機制升級為了universal link的方式,想到17年做過的一個需求,從微信內(nèi)打開的網(wǎng)頁直接跳轉(zhuǎn)至App指定頁面。將曾今寫過的一篇文章分享出來。

? ? ? 在以往的應用中,從微信端打開 App 分享出的鏈接,能實現(xiàn)跳轉(zhuǎn)至 Appstore中,再從 Appstore 中下載或者打開 App。Universal? link 技術(shù)的使用提供了更優(yōu)質(zhì)的體驗,能直接從微信中的鏈接跳入到 App的指定頁面。

? ? ? App從分享至微信到從微信中直接打開指定 App頁面整個流程如下, 如果App 未下載,則直接跳轉(zhuǎn)至 Appstore(此步驟不在本文范圍討論)。? ?

實現(xiàn)通用鏈路,需具備的先決條件:?

? 有兩個注冊的域名?

? 通過 SSL 訪問域名?

? ? 至少 Xcode7

? ? 至少 iOS9.0?

如果都有了,按照下面三個步驟來實現(xiàn):

1、添加域名Capabilitie

? ? ? ? 首先,? 你必須在? Xcode? 的? capabilities? 里? 添加域名(下圖藍色處),? 必須用applinks: 前置它,還可以添加一些你可能用到的子域和擴展(www.domain.com,? news.domain.com 等等)。

這將使你的 APP? 從你的域名請求一個特殊的? JSON? 文件? apple-app-site-association。當你第一次啟動 APP,它會從? https://xxx.xxx.xxxx/apple-appsite-association? 下載這個文件。

2、上傳 apple-app-site-association

? ? ? 切記該文件所處的域名必須支持 https訪問,且不能和分享頁面在同一個域名下(實踐得出)。你可以打開一個文本編輯器然后寫一個這樣的簡單 JSON? 格式:


根據(jù)? paths? 鍵設(shè)定一個允許的路徑列表,? App根據(jù)不同路徑觸發(fā)的調(diào)起可以做不同的處理邏輯。? 或只是一個星號如果你想打開 APP 而不管路徑是什么。你可能想知道此處appID從何而來,就是:團隊開發(fā)者賬號標識+bundle? id.你可以從你的蘋果開發(fā)者賬號里獲取你的團隊標識.? ? 最后, 上傳這個文件到第 1 步中 App 所注冊的域名根目錄。如果你打開https://xxx.xxx.xxx/apple-app-site-association? ? 可以看到你的文件,? 那么你就可以繼續(xù)下一步了。

3、在 App 里處理通用鏈接

分享至微信的分享頁跳轉(zhuǎn)至 App按鈕點擊事件要實現(xiàn)如下參考代碼(藍色部分為步驟1添加的域名):

為了在? APP 里支持通用鏈接,? 你需要在? AppDelegate 里實現(xiàn)如下參考代碼:? ? ?

webpageURL 即為在微信中的分享頁面中觸發(fā)跳轉(zhuǎn) App 按鈕時的鏈接,因為App 中使用了通用鏈接技術(shù),注冊了此域名,所以在代理方法中自動獲取到。? 上述 iOS 代碼中檢測到了 game字段后發(fā)送名為? “jump”的通知,App 其它頁面獲取這個通知后做相應處理。?

4、記得在蘋果開發(fā)者官網(wǎng)中檢測此 app設(shè)置允許使用Associated Domains。

拋磚引玉,如有說得不夠詳盡之處敬請諒解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容