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

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

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

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

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

? 有兩個(gè)注冊(cè)的域名?

? 通過 SSL 訪問域名?

? ? 至少 Xcode7

? ? 至少 iOS9.0?

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

1、添加域名Capabilitie

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

這將使你的 APP? 從你的域名請(qǐng)求一個(gè)特殊的? JSON? 文件? apple-app-site-association。當(dāng)你第一次啟動(dòng) APP,它會(huì)從? https://xxx.xxx.xxxx/apple-appsite-association? 下載這個(gè)文件。

2、上傳 apple-app-site-association

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


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

3、在 App 里處理通用鏈接

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

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

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

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

拋磚引玉,如有說得不夠詳盡之處敬請(qǐng)諒解

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

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

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