Android 深層連結技術指引:應用程式連結

Alex Austin

2017-10-30

本文為 Android 深層連結四部篇技術指引的第三篇。先前的文章涵蓋 URI 配置與  Chrome Intents 相關資訊,而在下一篇文章中將會探討有關 Google Play Referrer 的資訊。

透過 Android 應用程式連結執行深層連結

Android 在近期發佈推出 Android Marshmallow (6.0),並引進了一種稱為「應用程式連結」的新機制,此種機制可直接開啟應用程式。此機制意在複製 iOS 9 的「通用連結」功能性,其在點選一般 HTTP/HTTPS 連結且已安裝對應應用程式的情況下,會立即開啟應用程式。以下是「應用程式連結」的重新導向邏輯:

  • 透過用途開啟應用程式 (若已安裝)
  • 若未安裝應用程式則切換回網頁連結

應用程式連結」亦是一種將您現有網站連結轉換為應用程式連結的簡易方式。例如: https://imbd.com/title/12345。若 IMDB 正確設定其應用程式連結的網站,則當在手機上安裝 IMDB 且點選連結時,其便會立即開啟。若未安裝應用程式,則會在瀏覽器中開啟網址。

Android app links deep linking

待經過數月 6.0 版變得更加普及之後,其可能會捨棄標準 URI 與 Chrome 用途機制。在此同時,您將必須連同其他所有機制一併支援該機制,以確保能夠妥善處理所有的極端狀況 再次印證 Android 的極端分散特性。

Android 應用程式連結的需求

  • 必須具有正常運作的網站
  • 使用者必須採用 Android 6.0 + 版本

設定 Android 應用程式連結

您可運用以下兩個步驟,設定您的服務使用應用程式連結:

  1. 設定資訊清單以接收用途
  2. 將您的網站登錄為「應用程式連結」

步驟一 將用途篩選新增至您的資訊清單

此操作方式非常直覺易用。您必須告知 Android 哪個網站應開啟應用程式而非網站。

步驟二 設定「應用程式連結」的網站

您必須使用下列格式,建立一個名為 assetlinks.json 的檔案:

備註:「應用程式連結」無須變更 android_app 的預設值即可順暢運作。

您應用程式簽署憑證的 SHA256 指紋。您將必須使用 Keytool 來產生指紋。在命令列中,輸入 cd 進入 java 主目錄,然後再輸入 cd 進入 bin 資料夾。接著再執行下列命令:

$ keytool -list -v -keystore my-release-key.keystore

(如需協助尋找 Keytool,請在 Mac 或 Windows上查看此範例。)

最後,assetlinks.json 檔案必須主控於 /.well-known/assetlinks.json。我們已使用 Node+Express 連結伺服器,為所有 Branch 整合應用程式設定該檔案。以下是我們使用的程式碼:

處理應用程式中的深層連結

若要處理應用程式中的深層連結,您僅須在透過按一下開啟的「活動」中,抓取用途資料字串。您可比照此方式執行:

遺憾的是,在此之後您必須執行字串剖析,以讀取觸發開啟應用程式之「應用程式連結」的完整字串。

深層連結的實務應用

就實務上而言,若所有用戶皆使用 6.0+ 版本且您已建置網站,則此為最簡易使用的機制。由於上述完美設想極難實現,因此您必須處理各種極端狀況。

就現今而言,我們建議您透過「應用程式連結」啟用您的網站,但在其變得更加通用普及之前,仍繼續採用 URI 配置與 Chrome 用途相關的現有深層連結機制。例如,若使用者開啟您的網站且已安裝應用程式,且他們在您的行動網站上點選按鈕啟動應用程式,則您會想要觸發 Chrome 用途或 URI 配置。「應用程式連結」似乎不會處理該情境。

若您沒有網站但想要使用「應用程式連結」,建議您將 Branch Deepviews 整合至您的整體產品策略。其為您應用程式內容的行動網站預覽,且為自動產生並由我們主控。對於未安裝您應用程式但想要檢視/體驗內容的使用者而言,Deepviews 提供了優異的替代方案,同時亦是「Android 應用程式連結」的理想備援方案。

請密切關注接下來發佈的 Android 深層連結系列文章。

现在订阅每周博客摘要,其中包含移动增长技巧,行业更新和产品公告!
shares