Android:提升產品與應用程式的曝光度,Deep Link 實作

Xavier Yin
KKday Tech Blog
Published in
5 min readMay 15, 2018

聽過 Deep Link(深度鏈結)?若是沒有,建議參考這篇文章:App 推廣密技 Deferred Deep Link 延遲深度連結,可以深入了解 Deep Link 究竟在做些什麼?這邊淺談一下 Deep Link 的作用為何就好。

Deep Link 是指讓已安裝 App 的用戶,根據已設定的網域網址,快速地打開指定的商品頁。這樣的目的為何?其實就是使用者在 Google 搜尋一個你的產品網頁時,點擊的瞬間無需開啟該網頁,而是將使用者導去應用程式裡,這樣可以提升應用程式的使用者體驗,如同下列圖片一樣。

雖然是簡單的概念,但在應用程式裡還是需要一些實作,才能順利導引至應用程式。在進入實作之前,需要提到 Android 的 Deep Link 有兩種方式,一種為 Deep Link,另一種則是 App Link,兩種方式差不多,而前者可支援Android 6.0 (API 23) 以下,後者則只能支援以上的版本,兩者差異可以參考Android Developers。接下來就正式進入如何在 Android 內實作該機制。

實作 Deep Link 主要分為以下步驟:

  • 定義 Scheme、Host 和 Path:
    這部分端看你相對應的 URL,將這個 URL 的 Protocol/Host/Path 各自拆開,定義在 AndroidManifest.xml 欲接受該 URL 的 Activity 中(通常是定義在 MainActivity 內)。
    例如:相對應的 URL 為 https://www.kkday.com/zh-tw/product/11334,在AndroidManifest.xml 的定義如下。 scheme 屬性填入 URL 的 Protocol,host 屬性填入 URL 的 Host, pathPattern 則是 URL 的 Path(若你希望彈性一點,可以用簡單的正則表示式),若你要使用同一個 Activity,記得則要將 launchMode 屬性設為 singleTask。
  • 新增兩個測試用的頁面 — 主頁面和產品頁:
    這兩個頁面很簡單,主頁面只是接收 Deep Link 帶來的 URL,產品頁則是透過主頁面帶來 URL 的目標頁面而已,以下是程式碼。
主頁面
產品頁
  • 處理 Deep Link URL:
    當你在 AndroidManifest.xml 添加主頁面 intent-filter 後,每當你點擊相對應的 URL 時,你的 Activity 會收到 Intent 帶過來的資料,這時你就可以順利拿到這個 URL,以下是程式碼。
DeepLinkActivity.kt
ProductActivity.kt
  • 測試 Deep Link:
    當你順利取得你要的 URL 後,就可以來進行測試,可以使用這些方式測試:下載 Deep Link Tester 或使用 adb shell。
  • 測試 Deep Link — Deep Link Tester
    當你下載後,可以輸你要測試的 URL,如下圖。
使用 Deep Link Tester(左)、送出後跳出 Dialog 詢問(右)
成功後喚起主頁面 DeepLinkMainActivity(左)、接著導入至產品頁 ProductActivity(右)
  • 測試 Deep Link — adb shell:喚起 Terminal,並輸入
    `adb shell am start -W -a android.intent.action.VIEW -d “https://m.kkday.com/zh-tw/product/7317” com.kkday.member`,結果如同上面的方式

以上就是 Deep Link 的簡單實作,實作上並不會太難。比較麻煩的是在剖析 URL 的部分,會應用到正則表示式,而且也得視整體的商業邏輯來進行,看哪些頁面有需要導引的必要。其概念還有更多不錯的應用,之後很樂意繼續跟大家分享。

相關資訊

--

--