如何透過 RBM 代理程式深層連結應用程式

在行動應用程式中,深層連結能讓使用者直接前往應用程式內的內容。如果使用深層連結,當您與好友分享零售商店發現的 T 恤後,系統會將其導向瀏覽器,或是請他們前往 Play 商店;他們必須先安裝或開啟應用程式,然後搜尋內容。這兩種情況都不是良好的使用者體驗。 透過深層連結,好友能夠連至您在零售應用程式裡實際看到的 T 恤。

在本文中,您將瞭解如何使用深層連結為 RBM 使用者打造豐富且引人入勝的體驗。

讓 RBM 使用者進入應用程式

深層連結只是連結至應用程式的連結。您的 RBM 代理程式可以使用 OpenUrlAction 開啟使用者手機上安裝的應用程式,其網址是針對您要叫用的應用程式設定的深層連結。詳情請參閱「建立應用程式內容的深層連結」一文。

我們來看看具體範例。如要在 Google 播客應用程式中開啟 Google Cloud Podcast,可以使用 URI 建立 OpenUrlAction:

https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0

許多 Google 產品都支援深層連結,適用於 YouTube 和 Google 地圖等網址。

如要透過代理程式觸發這些應用程式,我們必須將這個值指定為 OpenUrlAction 中的網址。在下方 JSON 範例中,系統會指定使用三個開啟網址動作的 RBM 複合式資訊卡。每個深層連結都導向不同的應用程式。

{
    "contentMessage":{
        "richCard":{
            "standaloneCard":{
                "cardOrientation":"VERTICAL",
                "cardContent":{
                    "title":"Did you know that you can open apps from an RBM agent?",
                    "description":"",
                    "suggestions":[
                        {
                            "action":{
                                "text":"Google Cloud Podcast",
                                "postbackData":"podcast_tap",
                                "openUrlAction":{
                                    "url":"https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1JvYkNlc3Rlcm5pbm8&nord=0"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"YouTube Video",
                                "postbackData":"youtube_tap",
                                "openUrlAction":{
                                    "url":"https://www.youtube.com/embed/xSE9Qk9wkig"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"Google Maps",
                                "postbackData":"maps_tap",
                                "openUrlAction":{
                                    "url":"https://goo.gl/maps/ToMSdr4PYX62"
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}

如果這個 JSON 酬載在使用者的 RCS 用戶端中算繪,則建議動作的圖示與深層連結的應用程式相符。輕觸任一建議動作後,相應的應用程式就會直接在網址編碼的內容中啟動。

含有應用程式圖示的建議網址

原因:

您可能會想基於多種原因將深層連結導向應用程式。

驗證

如果代理程式處理潛在的機密資訊,最簡單的做法就是對應用程式進行深層連結,透過指紋、登入或其他方式驗證使用者。當使用者成功通過驗證後,您可以追蹤伺服器端,並觸發新的 RBM 訊息,將他們導回服務專員。如果您傳送任何可能敏感的後續訊息,則可透過伺服器端檢查,確認使用者是否已通過驗證。如果不是,可以將應用程式傳回應用程式來更新其驗證權杖。

複雜用途支援

RBM 代理程式很適合用來進行對話互動,但應用程式可以更適合部分用途。舉例來說,假設您經營一間家具公司,並打造擴增實境體驗,讓使用者在家裡試用家具 (請查看下圖),則應用程式只能支援您的用途。

在這些情況下,建議您將 RBM 使用者引導至您的應用程式,藉此執行部分功能。應用程式隨時可以觸發新的代理程式訊息,讓使用者可以返回 RBM 對話。

應用程式的深層連結 深層連結應用程式

便利付款

你可以透過支援深層連結的第三方應用程式支付款項。

舉例來說,假設您想透過虛構的付款公司 AcmePay 支援匯款作業,透過調查線上,您發現 AcmePay 支援使用其專屬 URI 結構進行深層連結,並讓您透過查詢字串參數傳入收件者、金額和附註的值。

據您所知,您的代理程式只需建立 OpenUrlAction,並使用參數化 AcmePay URI 給建議動作的網址部分。

acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!

RBM 訊息的收件者輕觸建議動作後,AcmePay 應用程式就會直接在交易畫面中啟動,其中已填入的值。

如未安裝應用程式,會有什麼影響?

如果使用者的應用程式並未安裝某個應用程式,深層連結行為取決於傳送至 OpenUrlAction 的 URI 結構。如果裝置上至少有一個應用程式可辨識該 URI (例如 Chrome 可辨識開頭為「http://」的網址),則應用程式中的建議操作就會恢復正常。當使用者輕觸該動作時,系統就會在該應用程式中開啟 URI 結構。

如果您是應用程式開發人員,深層連結通常會使用開頭為「http://」的 URI 並指向您擁有的網域,因為 Chrome 可將使用者導向至某個網頁做為備用動作。在這個頁面中,您可以引導使用者下載應用程式,或視情況將使用者導向他們。

如果 URI 採用裝置上任何應用程式無法辨識的自訂結構,則建議動作不會顯示在 RBM 訊息中

如要確保建議採取的動作持續顯示,您可以使用自己的網址,然後讓網頁嘗試將瀏覽器重新導向至啟動應用程式的自訂 URI。如果應用程式已安裝在裝置上,系統會如預期般啟動應用程式。如果不是,系統會一直留在網頁上,您可視需要將其導向用途。

以下舉例說明如何使用 JavaScript 進行設定。指令碼會嘗試將使用者重新導向至 AcmePay 應用程式,但如果未安裝該應用程式,指令碼會將使用者重新導向至 Google Play 商店,以便下載應用程式。

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0" />
    <title>Acme Pay</title>

    <script type="text/javascript">
    window.onload = function() {
       // Launch Acme Pay app for existing users
       window.location = 'acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!';

       // Redirect to Acme Pay app download for new users
       setTimeout("window.location = 'https://play.google.com/store/apps/details?id=com.acmepay.android';", 1000);
    }
    </script>
</head>
<body>
    <h1>Redirecting…</h1>
</body>
</html>

總結與總結

您可以使用 OpenUrlAction 建議動作,深層連結到您擁有的應用程式,或您要觸發的應用程式,以吸引使用者。透過深層連結,您可以為使用者提供更豐富多元的優質體驗,或是提高機密內容的共用安全性。

祝您一切順利!