Trong ứng dụng dành cho thiết bị di động, tính năng liên kết sâu cho phép người dùng chuyển thẳng đến nội dung trong ứng dụng. Nếu không có tính năng liên kết sâu, khi bạn chia sẻ với bạn bè một chiếc áo sơ mi mà bạn tìm thấy trong ứng dụng cửa hàng bán lẻ, thì đường liên kết mà bạn gửi cho họ sẽ đưa họ đến trình duyệt hoặc Cửa hàng Play. Tại đây, họ cần cài đặt hoặc mở ứng dụng rồi tìm kiếm nội dung. Cả hai trường hợp này đều không mang lại trải nghiệm tốt cho người dùng. Với đường liên kết sâu, đường liên kết này sẽ đưa bạn bè đến đúng chiếc áo sơ mi bạn tìm thấy trong ứng dụng bán lẻ.
Trong tài liệu này, bạn sẽ tìm hiểu cách sử dụng đường liên kết sâu để tạo trải nghiệm phong phú và hấp dẫn cho người dùng RBM.
Đưa người dùng RBM vào ứng dụng
Đường liên kết sâu chỉ là một đường liên kết đến một ứng dụng. Tác nhân RBM có thể mở một ứng dụng đã được cài đặt trên điện thoại của người dùng bằng cách sử dụng OpenUrlAction, trong đó URL là một đường liên kết sâu được định cấu hình cho ứng dụng mà bạn muốn gọi. Bạn có thể đọc thêm trong bài viết Tạo đường liên kết sâu đến nội dung trong ứng dụng.
Hãy xem ví dụ sau. Để mở podcast Google Cloud trong ứng dụng Google Podcasts, bạn có thể tạo một OpenUrlAction bằng URI:
https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0
Nhiều sản phẩm của Google được định cấu hình để hỗ trợ các đường liên kết sâu cũng hoạt động như URL web, bao gồm cả YouTube và Google Maps.
Để kích hoạt bất kỳ ứng dụng nào trong số này từ một tác nhân, chúng ta cần chỉ định giá trị này làm URL trong OpenUrlAction. Trong tệp JSON mẫu sau đây, thẻ thông tin chi tiết RBM được chỉ định với 3 thao tác URL mở, mỗi thao tác liên kết sâu đến một ứng dụng riêng.
{
"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"
}
}
}
]
}
}
}
}
}
Khi tải trọng JSON này hiển thị trong ứng dụng RCS của người dùng, biểu tượng của thao tác đề xuất sẽ khớp với ứng dụng được liên kết sâu. Thao tác nhấn vào bất kỳ thao tác đề xuất nào sẽ khởi chạy ứng dụng tương ứng trực tiếp đến nội dung được mã hoá trong URL.
Tại sao bạn muốn làm việc này?
Có một số lý do khiến bạn có thể muốn liên kết sâu vào một ứng dụng.
Xác thực
Nếu tác nhân của bạn xử lý thông tin có thể nhạy cảm, thì một cách để bảo mật tác nhân là liên kết sâu vào ứng dụng của bạn để xác thực người dùng bằng vân tay, thông tin đăng nhập hoặc một số phương thức khác. Sau khi người dùng xác thực thành công, bạn có thể theo dõi phía máy chủ xác thực và đưa người dùng quay lại tác nhân bằng cách kích hoạt một thông báo RBM mới. Nếu gửi bất kỳ thư tiếp theo nào có thể nhạy cảm, bạn có thể kiểm tra phía máy chủ để đảm bảo người dùng đã được xác thực. Nếu không, bạn có thể gửi lại họ đến ứng dụng để gia hạn mã thông báo xác thực.
Hỗ trợ trường hợp sử dụng phức tạp
Các tác nhân RBM rất phù hợp cho các hoạt động tương tác trò chuyện, nhưng ứng dụng có thể phục vụ tốt hơn một số trường hợp sử dụng. Ví dụ: nếu bạn có một công ty nội thất và đã tạo một trải nghiệm thực tế tăng cường để người dùng có thể thử đồ nội thất trong nhà của họ (xem hình ảnh sau), thì trường hợp sử dụng của bạn chỉ có thể được ứng dụng hỗ trợ.
Trong những trường hợp như vậy, bạn nên hướng người dùng RBM đến ứng dụng của mình để thực hiện một số chức năng. Ứng dụng của bạn luôn có thể đưa người dùng quay lại cuộc trò chuyện RBM bằng cách kích hoạt một tin nhắn mới của nhân viên hỗ trợ.
Hỗ trợ thanh toán
Bạn có thể hỗ trợ thanh toán bằng một ứng dụng bên thứ ba có tính năng liên kết sâu.
Ví dụ: giả sử bạn muốn hỗ trợ chuyển tiền thông qua công ty thanh toán AcmePay hư cấu. Bằng cách điều tra trên mạng, bạn phát hiện ra rằng AcmePay hỗ trợ liên kết sâu bằng cách sử dụng cấu trúc URI riêng biệt, cho phép bạn truyền các giá trị cho người nhận, số tiền và ghi chú bằng cách sử dụng các tham số chuỗi truy vấn.
Với kiến thức này, tác nhân của bạn cần tạo một OpenUrlAction với URI AcmePay được tham số hoá được chỉ định cho phần URL của hành động được đề xuất.
acmepay://paycharge?recipients=Jane+Smith&amount=10¬e=Money+For+You!
Sau khi người nhận tin nhắn RBM nhấn vào hành động được đề xuất, ứng dụng AcmePay sẽ khởi chạy trực tiếp vào màn hình giao dịch với các giá trị đã truyền đã được điền sẵn.
Điều gì sẽ xảy ra nếu ứng dụng chưa được cài đặt?
Nếu một ứng dụng chưa được cài đặt trên thiết bị của người dùng, thì hành vi liên kết sâu sẽ phụ thuộc vào cấu trúc của URI được truyền đến OpenUrlAction. Nếu ít nhất một ứng dụng trên thiết bị có thể nhận dạng URI (ví dụ: Chrome nhận dạng URL bắt đầu bằng "http://"), thì thao tác được đề xuất sẽ hiển thị như bình thường trong ứng dụng đó. Khi người dùng nhấn vào thao tác, URI sẽ mở trong bất kỳ ứng dụng nào nhận dạng được cấu trúc URI.
Nếu là nhà phát triển ứng dụng, bạn nên liên kết sâu với URI bắt đầu bằng "http://" và trỏ đến một miền bạn sở hữu vì Chrome có thể đưa người dùng đến một trang web như một thao tác dự phòng. Trên trang web này, bạn có thể hướng dẫn người dùng tải ứng dụng xuống hoặc hướng dẫn họ tải ứng dụng xuống nếu bạn thấy phù hợp với trường hợp sử dụng của mình.
Trong trường hợp URI sử dụng cấu trúc tuỳ chỉnh mà không có ứng dụng nào trên thiết bị nhận dạng được, thì hành động được đề xuất sẽ không hiển thị trong thông báo RBM.
Để đảm bảo hành động đề xuất luôn xuất hiện, bạn có thể sử dụng URL bạn sở hữu và trang web cố gắng chuyển hướng trình duyệt đến URI tuỳ chỉnh để chạy ứng dụng. Nếu ứng dụng tồn tại trên thiết bị, thì ứng dụng sẽ khởi chạy như dự kiến. Nếu không, người dùng sẽ vẫn ở trên trang web, nơi bạn có thể chuyển hướng họ nếu cần trong trường hợp sử dụng của mình.
Sau đây là ví dụ về cách thực hiện việc này bằng JavaScript. Tập lệnh này cố gắng chuyển hướng người dùng đến ứng dụng AcmePay, nhưng nếu ứng dụng đó chưa được cài đặt, tập lệnh sẽ chuyển hướng người dùng đến Cửa hàng Google Play để tải ứng dụng xuống.
<!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>
Tổng kết và tóm tắt
Bạn có thể sử dụng hành động được đề xuất OpenUrlAction để liên kết sâu vào các ứng dụng mà bạn sở hữu hoặc các ứng dụng mà bạn muốn kích hoạt để giúp thu hút người dùng. Bằng cách liên kết sâu, bạn có thể cung cấp trải nghiệm phong phú và hấp dẫn cho người dùng hoặc tăng cường khả năng bảo mật khi chia sẻ nội dung nhạy cảm.
Chúc bạn may mắn và lập trình vui vẻ!