deepLinkReceiver

تگ XML به نام `deepLinkReceiver`در Appsan این امکان را می دهد که اپلیکیشن شما لینک های عمیق (deep links) را مدیریت کند. با استفاده از این تگ می توانید مشخص کنید اگر کاربر از طریق لینک عمیق خاصی وارد اپلیکیشن شد، چه صفحه ای باید نشان داده شود.

اجزای سازنده

  • deeplink (لینک عمیق): هر تگ <deeplink> یک تعریف جداگانه برای یک لینک عمیق مشخص را در بر دارد. این تگ شامل خصوصیت های (attribute) زیر است:
    • path: مسیر دقیقی که باید در لینک عمیق وجود داشته باشد تا صفحه مورد نظر باز شود. (مثلا "/payment")
    • pathregex: به شما اجازه می دهد از یک عبارت منظم (regular expression) برای تطابق با مسیر لینک عمیق استفاده کنید. این خصوصیت در سناریو های پیچیده تر کاربرد دارد.
    • page: نام صفحه ای که باید در صورت تطابق مسیر لینک، به کاربر نمایش داده شود.

نحوه عملکرد

  1. فرض کنید کاربری روی لینکی با ساختار زیر کلیک می کند:

    https://example.com/app/miniapp_id/path?query=value
    
  2. اپلیکیشن ابتدا شناسه اپلیکیشن کوچک (miniapp_id) را از لینک استخراج می کند. و مینی اپ مربوطه را باز می کند.

  3. سپس قسمت مسیر URL (یعنی /path) با خصوصیت های path (یا در صورت تعریف، pathregex) موجود در تگ های <deeplink> تطابق داده می شود.

  4. اگر تطابقی حاصل شود، صفحه ای که در خصوصیت page تعیین شده است بارگذاری می شود٬ در صورت عدم تطابق صفحه ی اول xml باز می شود.

دسترسی به داده های لینک عمیق با Bind

شما می توانید از توابع bind (که در سوال نمونه کد آنها را ارائه کرده اید) برای خواندن و تعامل با اجزای مختلف داده های موجود در لینک عمیق استفاده کنید.

مثال کد برای یک اپلیکیشن کوچک

<page>
    <text text="DeepLink test, this page is opened as default page when path is not a match."/>
    <button text="btn" onclick=""/>
</page>

<page id="paymentPage">
    <text text="This is payment page"/>
    <text id="txt1" text="click the button to get data"/>
    <button text="get data" onclick="script/s1:getData()"/>

<script id="s1">
    function getData() {
        const path = Appsan.getBind("deeplink/path");
        Appsan.setProperty("txt1", "text", path);
    }
</script>
</page>

<deepLinkReceiver>
    <deeplink path="payment" page="paymentPage"></deeplink>
    <deeplink path="page2" page="page2"></deeplink>
</deepLinkReceiver>
  • استفاده از توابع bind به شما کمک می کند اطلاعاتی مثل پارامترهای کوئری یا بخش های مسیر را از لینک عمیق استخراج کرده و از آنها درون اپلیکیشن خود استفاده کنید.