MobLink | URL Scheme和Universal Link的區(qū)別

一.簡(jiǎn)介蘋果的沙盒機(jī)制

一般來(lái)說(shuō),我們使用的智能設(shè)備上有許多我們的個(gè)人信息。比如:聯(lián)系方式、銀行卡/信用卡信息、支付寶/Paypal/各大商城的賬戶密碼、照片甚至行程與位置信息等等。

如果說(shuō),你設(shè)備上的每一個(gè)應(yīng)用,不管是官方的還是你從任何商城安裝的應(yīng)用都可以隨意地獲取這些信息,那么你輕則收到騷擾信息和郵件、重則后果不堪設(shè)想。如何讓這些信息不被其它應(yīng)用隨意使用,或者說(shuō),如何讓這些信息僅在設(shè)備所有者本人知情并允許的情況下被使用,是所有智能設(shè)備與操作系統(tǒng)所要在乎的核心安全問(wèn)題。

在 iOS 這個(gè)操作系統(tǒng)中,針對(duì)這個(gè)問(wèn)題,蘋果使用了名為「沙盒」的機(jī)制:應(yīng)用只能訪問(wèn)它聲明可能訪問(wèn)的資源。一切提交到 App Store 的應(yīng)用都必須遵守這個(gè)機(jī)制。

蘋果選擇沙盒來(lái)保障用戶的隱私和安全,但沙盒也阻礙了應(yīng)用間合理的信息共享,于是有了 URL Schemes 這個(gè)解決辦法。

二.簡(jiǎn)介URL Scheme

1.URL Scheme是什么?

通過(guò)對(duì)比網(wǎng)頁(yè)鏈接來(lái)理解 iOS 上的 URL Scheme,應(yīng)該就容易多了。

URL Scheme 有兩個(gè)單詞:

URL,我們都很清楚,例如http://www.apple.com就是個(gè) URL,我們也叫它鏈接或網(wǎng)址;

Scheme,表示的是一個(gè) URL 中的一個(gè)位置——最初始的位置,即 ://之前的那段字符。比如http://www.apple.com這個(gè)網(wǎng)址的 Scheme 是 http。

根據(jù)我們上面對(duì) URL Scheme 的使用,我們可以很輕易地理解,在以本地應(yīng)用為主的 iOS 上,我們可以像定位一個(gè)網(wǎng)頁(yè)一樣,用一種特殊的 URL 來(lái)定位一個(gè)應(yīng)用甚至應(yīng)用里某個(gè)具體的功能。而定位這個(gè)應(yīng)用的,就應(yīng)該這個(gè)應(yīng)用的 URL 的 Scheme 部分,也就是開頭那部分。比如短信,就是 sms:

2.如何配置URL Scheme?

項(xiàng)目中需要配置 URL Scheme 以用于場(chǎng)景恢復(fù)時(shí)跳轉(zhuǎn)到應(yīng)用中(這里的scheme要唯一確定,不要與其他應(yīng)用一致,建議使用項(xiàng)目名稱作為scheme,不然有可能會(huì)跳轉(zhuǎn)到其他的應(yīng)用里)。

在iOS工程中選擇工程 Target,選擇 Info 選項(xiàng),然后打開 URL Types,添加 URL Scheme。可以自定義協(xié)議名稱,如moblink。這個(gè)形式的 URI 就會(huì)關(guān)聯(lián)跳轉(zhuǎn)到工程中。

三.簡(jiǎn)介Universal Link

1.Universal Link 是什么?

Universal Link 是 Apple 在WWDC 2015上為 iOS 9 引入的一個(gè)新功能,是通過(guò)傳統(tǒng)HTTP鏈接來(lái)啟動(dòng)App的新技術(shù)??梢允褂孟嗤木W(wǎng)址打開網(wǎng)站和App。

通過(guò)唯一的網(wǎng)址,就可以鏈接到App中具體的視圖,不需要特殊的Scheme。如果用戶沒(méi)有安裝App則鏈接到對(duì)應(yīng)的普通網(wǎng)頁(yè)。

2.如何配置 Universal Link ?

在蘋果開發(fā)者網(wǎng)站中打開需要使用 Universal Link 功能的App中的Associated Domains開關(guān)

然后上傳一個(gè)名為“apple-app-site-association”的文件到服務(wù)器根目錄下,該文件內(nèi)容格式如下:


其中“appID”是由開發(fā)者的TeamID和App的BundleID拼接而成,“paths”數(shù)組可用來(lái)指定該URL下的哪些路徑被注冊(cè)成為Universal Link。相關(guān)詳細(xì)說(shuō)明請(qǐng)參考:Support Universal Links

最后在AppDelegate中實(shí)現(xiàn)相應(yīng)的代理方法即可。

四.URL Scheme和Universal Link區(qū)別

在 iOS 9 以前,我們從外部啟動(dòng)App都是通過(guò)URL Scheme實(shí)現(xiàn)跳轉(zhuǎn)的。這種方式雖然可自定義程度很高,能夠巧妙地實(shí)現(xiàn)很多跳轉(zhuǎn),但弊端也很明顯:我們只能通過(guò) scheme://example 這種格式的鏈接來(lái)實(shí)現(xiàn)跳轉(zhuǎn),而且現(xiàn)在蘋果還對(duì)這種方式的跳轉(zhuǎn)加了一個(gè)提示框:“是否打開XXX”。對(duì)于對(duì)Web和原生App交互的場(chǎng)景需求量很大的產(chǎn)品來(lái)說(shuō),這樣的跳轉(zhuǎn)方式顯然是步驟冗雜的,用戶體驗(yàn)并不好。

iOS 9 以后,Universal Link 的出現(xiàn)完美的解決了這個(gè)問(wèn)題。它所提供的直接、順暢、無(wú)縫銜接的跳轉(zhuǎn)能夠讓用戶體驗(yàn)提升一個(gè)很大的級(jí)別。用戶可以點(diǎn)擊開發(fā)者指定的類似于https://example.com/t的URL直接喚醒App,而不需要在瀏覽器打開再點(diǎn)擊其他按鈕,實(shí)現(xiàn)真正意義上的一鍵直達(dá),無(wú)縫鏈接。

最后編輯于
?著作權(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ù)。

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

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