deeplink
android
ios
在一般網頁裡,深度連結就是說這個連結不僅只是打開一個網站 http://example.com/ ,而是直接地打開這個網站中的某個具體內容頁面 http://example.com/my-awesome-content-page
在行動裝置中,透過點擊一個定義好並註冊的 Customer URL Schema(例如:instagram://),就能開啟 APP
第一代實現 deep link 的方法
URL包含了找到資源的方法(路徑)和資源名稱,也就是當一個URI包含了一個訪問機制或者網絡位置的時候(e.g. http// or ftp://),它就是一個URL了。
URN就是一個獨一無二的資源名稱,它是由urn開頭的一串URI。
e.g. urn:oasis:names:specification:docbook:dtd:xml:4.1.2
所以說,它們之間重要的區別就在於它的開頭,也就是Scheme.
利用它就可以在行動裝置中實現從 web 頁面或者別的 app 中喚起自己的app的功能
Deferred Deep Link(延遲性深度連結)就是當使用者透過一個特定的產品連結,點擊後進入該網頁,但該網頁可以引導使用者安裝應用程式,在安裝完程式後,照樣可以接續剛剛看過的商品,不讓整個體驗中斷
必須註冊URL Scheme,而這個註冊事實上是有和別人衝突的風險,加上一但Deferred Deep Link實作不完全,也容易有失效連結的問題
因此為解決以上問題,蘋果和安卓都有了自己的第二套解決方案,分別是 iOS 的 Universal Link,和 Android 的 App Link
適用於 iOS 9.0 之後的版本
擺脫過去定義URL Schema 的限制,反而是定義好Web與APP之間的呼應與連結,讓使用者可以利用HTTP/HTTPS連結,直接開啟APP進入內文頁
不是只定義一個custom URL scheme,而是匹配了多個web頁面到app中相應的位置,當用戶打開某個匹配的頁面時,iOS會自動地將其重定向到app內。
在用戶點擊了Universal link之後,iOS會去檢測用戶最近一次是選擇了直接打開app還是打開網站。這個選擇的步驟,實際上是在用戶進入了app之後,頂部bar的右側會出現一個通過網站打開的按鈕選項。如圖:
因此,一旦用戶點擊了這個選項,他就會通過safiri打開你的網站。並且在之後的操作中,默認一直延續這個選擇,除非用戶從你的webpage上通過點擊Smart App Banner上的OPEN按鈕來打開。也就是說,用戶非常容易在一次選擇之後,使得Universal link喚醒app的功能失效了。
適用於 Android 6.0 之後的版本
同 ios 的 Universal Link
無須再透過彈跳視窗選擇開啟應用程式
參考資料:
理解Deep Link & URI Schemes & Universal Link & App Link
點擊網頁廣告就打開APP? 淺談手機APP的深度連結Deep Link的演進(Universal Link)
Universal links on iOS vs. deep links (URL schemes)
使用 line://
直接開啟 line
使用 https://line.me/R/
會有一個中繼跳轉畫面
使用 fb://profile
使用 fb://facewebmodal/f?href=FACEBOOKURL
參考資料:
Open Facebook Page in Facebook App (if installed) on Android [duplicate]