در برنامه های تلفن همراه، پیوند عمیق به کاربران امکان می دهد مستقیماً به محتوای یک برنامه بروند. بدون پیوند عمیق، اگر پیراهنی را که در یک برنامه فروشگاه خردهفروشی پیدا کردهاید با دوست خود به اشتراک بگذارید، پیوندی که برای آنها ارسال میکنید یا آنها را به مرورگرشان میبرد یا به فروشگاه Play میبرد، جایی که باید آن را نصب یا باز کنند. برنامه و سپس محتوا را جستجو کنید. هیچکدام از این موقعیتها یک تجربه کاربری عالی نیست. با پیوند عمیق، پیوند دوست شما را به همان پیراهنی می برد که در برنامه خرده فروشی پیدا کردید.
در این مقاله، نحوه استفاده از پیوندهای عمیق برای ایجاد تجربیات غنی و جذاب برای کاربران RBM خود را یاد خواهید گرفت.
بردن کاربر RBM به یک برنامه
پیوند عمیق فقط یک پیوند به یک برنامه است. عامل RBM شما میتواند با استفاده از OpenUrlAction برنامهای را باز کند که روی تلفن شخصی نصب شده است، جایی که URL یک پیوند عمیق است که برای برنامهای که میخواهید فراخوانی کنید پیکربندی شده است. میتوانید در «ایجاد پیوندهای عمیق به محتوای برنامه» بیشتر بخوانید.
بیایید به یک مثال خاص نگاه کنیم. برای باز کردن پادکست Google Cloud در برنامه Google Podcast، میتوان با URI یک OpenUrlAction ایجاد کرد:
https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0
بسیاری از محصولات Google برای پشتیبانی از پیوندهای عمیق که به عنوان URL های وب نیز کار می کنند، از جمله YouTube و Google Maps پیکربندی شده اند.
برای راه اندازی هر یک از این برنامه ها از یک عامل، باید این مقدار را به عنوان URL در یک OpenUrlAction مشخص کنیم. در نمونه JSON زیر، یک کارت غنی از RBM با سه اقدام URL باز مشخص شده است که هر کدام به یک برنامه متفاوت پیوند عمیق دارند.
{
"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 کاربر ارائه میشود، نماد اقدام پیشنهادی با برنامه پیوند عمیق مطابقت دارد. با ضربه زدن روی هر یک از اقدامات پیشنهادی، برنامه مربوطه مستقیماً به محتوای کدگذاری شده در URL راه اندازی می شود.
چرا این را می خواهید؟
دلایل مختلفی وجود دارد که ممکن است بخواهید به یک برنامه پیوند عمیق بدهید.
احراز هویت
اگر نماینده شما با اطلاعات بالقوه حساس سر و کار دارد، یکی از راههای کمک به ایمن کردن نماینده، پیوند عمیق به برنامهتان است تا به احراز هویت کاربر از طریق اثر انگشت، ورود به سیستم یا هر وسیله دیگری کمک کند. هنگامی که کاربر با موفقیت احراز هویت شد، میتوانید سمت سرور احراز هویت را ردیابی کنید و با راهاندازی یک پیام RBM جدید، کاربر را به عامل بازگردانید. اگر پیامهای پیگیری احتمالی حساسی ارسال میکنید، میتوانید سمت سرور را بررسی کنید تا از احراز هویت کاربر مطمئن شوید. اگر اینطور نیست، میتوانید آنها را به برنامه بازگردانید تا رمز احراز هویت آنها را تمدید کند.
پشتیبانی از موارد استفاده پیچیده
عوامل RBM برای تعاملات مکالمه عالی هستند، اما برنامهها بهتر میتوانند برخی موارد استفاده را ارائه دهند. به عنوان مثال، اگر یک شرکت مبلمان دارید و یک تجربه واقعیت افزوده ایجاد کرده اید تا کاربران بتوانند مبلمان را در خانه خود امتحان کنند (تصویر زیر را ببینید)، مورد استفاده شما فقط توسط یک برنامه پشتیبانی می شود.
در این شرایط، منطقی است که کاربران RBM خود را به برنامه خود هدایت کنید تا برخی از عملکردها را انجام دهند. برنامه شما همیشه میتواند با راهاندازی یک پیام عامل جدید، کاربر را به مکالمه RBM بازگرداند.
تسهیل در پرداخت
میتوانید از پرداختها با یک برنامه شخص ثالث با پیوند عمیق پشتیبانی کنید.
به عنوان مثال، فرض کنید می خواهید از انتقال پول از طریق شرکت پرداخت ساختگی AcmePay پشتیبانی کنید. با بررسی آنلاین، متوجه شدید که AcmePay از پیوند عمیق با استفاده از ساختار URI منحصر به فرد خود پشتیبانی می کند که به شما امکان می دهد مقادیر، مقدار و یک یادداشت را از طریق پارامترهای querystring ارسال کنید.
با داشتن این دانش، عامل شما به سادگی نیاز دارد که یک OpenUrlAction با URI AcmePay پارامتری مشخص شده برای بخش url اکشن پیشنهادی ایجاد کند.
acmepay://paycharge?recipients=Jane+Smith&amount=10¬e=Money+For+You!
هنگامی که گیرنده پیام RBM روی عملکرد پیشنهادی ضربه می زند، برنامه AcmePay مستقیماً در صفحه تراکنش با مقادیر ارسال شده از قبل پر شده راه اندازی می شود.
اگر برنامه نصب نشود چه اتفاقی می افتد؟
اگر برنامه ای روی دستگاه کاربر نصب نشده باشد، رفتار پیوند عمیق به ساختار URI ارسال شده به OpenUrlAction بستگی دارد. اگر URI حداقل توسط یک برنامه در دستگاه قابل شناسایی باشد (برای مثال Chrome نشانیهای وب را که با «http://» شروع میشوند، تشخیص میدهد، عملکرد پیشنهادی بهطور معمول در آن برنامه نمایش داده میشود. وقتی کاربر روی عملکرد ضربه می زند، URI در هر برنامه ای که ساختار URI را تشخیص دهد باز می شود.
اگر توسعهدهنده برنامه هستید، پیوند عمیق با URIهایی که با «http://» شروع میشوند و به دامنهای که متعلق به شما هستند اشاره میکنند سودمند است، زیرا Chrome میتواند کاربر را به عنوان یک اقدام بازگشتی به یک صفحه وب ببرد. در صفحه وب، میتوانید کاربر را راهنمایی کنید تا برنامه را دانلود کند یا آنها را به دلخواه برای مورد استفاده خود هدایت کنید.
در شرایطی که URI از ساختار سفارشی استفاده میکند که توسط هیچ برنامهای در دستگاه شناسایی نمیشود، عمل پیشنهادی در پیام RBM شما نمایش داده نمیشود .
برای اطمینان از اینکه اقدامات پیشنهادی شما همیشه ظاهر میشوند، میتوانید از نشانی اینترنتی خود استفاده کنید و از صفحه وب بخواهید مرورگر را به یک URI سفارشی هدایت کند که برنامه را راهاندازی میکند. اگر برنامه در دستگاه وجود داشته باشد، همانطور که انتظار می رود راه اندازی می شود. در غیر این صورت، کاربر در صفحه وب باقی میماند، جایی که میتوانید آنها را در صورت نیاز برای مورد استفاده خود هدایت کنید.
در زیر مثالی از نحوه انجام این کار با جاوا اسکریپت آورده شده است. اسکریپت سعی می کند کاربر را به برنامه 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>
جمع بندی و TL;DR
میتوانید از اقدام پیشنهادی OpenUrlAction برای پیوند عمیق به برنامههایی که مالک آن هستید یا برنامههایی که میخواهید برای کمک به تعامل کاربرانتان فعال کنید، استفاده کنید. با پیوند عمیق، میتوانید تجربهای غنیتر و جذاب برای کاربران خود یا امنیت بیشتر برای اشتراکگذاری محتوای حساس فراهم کنید.
موفق باشید و کد نویسی شاد!