在行動應用程式中,深層連結可讓使用者直接前往應用程式中的內容。如果沒有深層連結,當您與朋友分享零售商店應用程式中找到的襯衫時,傳送的連結會將他們帶往瀏覽器或 Play 商店,而他們必須在這些應用程式中安裝或開啟應用程式,然後搜尋內容。這兩種情況都無法提供良好的使用者體驗。透過深層連結,連結會將好友帶往您在零售應用程式中找到的確切上衣。
本文將說明如何使用深層連結,為 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 結構深層連結,可讓您使用查詢字串參數傳入收件者、金額和附註的值。
有了這些資訊,您的服務代理人就需要使用參數化 AcmePay URI 建立 OpenUrlAction,該參數化 AcmePay URI 是針對建議動作的網址部分指定的。
acmepay://paycharge?recipients=Jane+Smith&amount=10¬e=Money+For+You!
當 RBM 訊息的接收者輕觸建議動作時,AcmePay 應用程式會直接啟動到交易畫面中,並已填入資料。
如果未安裝應用程式,會發生什麼情況?
如果使用者的裝置中沒有安裝應用程式,深層連結的行為取決於傳遞至 OpenUrlAction 的 URI 結構。如果裝置上至少有一個應用程式可辨識 URI (例如 Chrome 可辨識開頭為「http://」的網址),則建議的動作會在該應用程式中正常顯示。當使用者輕觸動作時,URI 會在辨識 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¬e=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 建議動作,將深層連結連至您擁有的應用程式,或是您想觸發的應用程式,以利吸引使用者。透過深層連結,您可以為使用者提供豐富且引人入勝的體驗,或強化分享敏感內容的安全性。
祝您一切順利,編碼愉快!