إنشاء روابط عميقة لمحتوى التطبيق

الإعلانات

إنشاء روابط عميقة لمحتوى التطبيق

 

 

إنشاء روابط عميقة لمحتوى التطبيق

عند النقر على رابط أو إجراء طلب برمجي، يقوم بتنفيذ غرض URI على الويب، يحاول نظام الأندرويد إتخاذ كلٍ من الإجراءات التالية، بترتيب تسلسلي، حتى ينجح الطلب:

1- فتح التطبيق المفضل للمستخدم الذي يمكنه التعامل مع URI ، إذا تم تعيينه.

2- فتح التطبيق الوحيد المتاح الذي يمكنه التعامل مع URI.

3- السماح للمستخدم بتحديد تطبيق من مربع الحوار.

أتبع الخطوات التالية لإنشاء وإختبار روابط المحتوى الخاص بك.

يمكنك أيضاً إستخدام مساعد روابط التطبيقات في اندرويد ستوديو لإضافة روابط تطبيقات اندرويد.

 

 

 

 

 

إضافة مرشحات غرض للروابط الواردة


لإنشاء رابط إلى محتوى تطبيقك، قم بإضافة مرشح غرض يحتوي على هذه العناصر وقيم السمات في ملف إيضاحك:

<action> الإجراء

يحدد إجراء غرض  ACTION_VIEW حتى يمكن الوصول إلى مرشح الغرض من خلال بحث قوقل.

 

<data> البيانات

يقوم بإضافة وسم <data> واحد أو أكثر، كلٍ منها يمثل صيغة URI التي تحل النشاط. على الأقل، يجب أن يتضمن الوسم <data> على السمة android:scheme.

يمكنك إضافة المزيد من السمات لتحسين نوع عنوان URI الذي يقبله النشاط. على سبيل المثال..

قد يكون لديك أنشطة متعددة تقبل عناوين URI متشابهة، ولكنها تختلف ببساطة بناءً على أسم المسار.

في هذه الحالة، إستخدم سمة “المسار” android:path أو متغيراتها pathPattern أو pathPrefix

لتمييز النشاط الذي يجب أن يفتحه النظام لمسارات عنوان URI المختلفة.

 

 

<category> التصنيف

تتضمن فئة “إمكانية التصفح” BROWSABLE. مطلوبة من أجل الوصول إلى مرشح الغرض من متصفح الويب.

وبدونها، لا يمكن للنقر على الرابط في المتصفح، أن يحل إلى تطبيقك.

وتشمل أيضاً فئة “إفتراضي” DEFAULT. وهذا يسمح لتطبيقك بالإستجابة إلى الأغراض الضمنية.

وبدونها، يمكن بدء النشاط فقط إذا كان الغرض يحدد أسم مكون تطبيقك.

 

يوضح مقتطف XML التالي كيف يمكنك تحديد مرشح غرض في ملف فهرسك للرابط العميق.

كلٍ من روابط URIs:

 "example://gizmos" و "http://www.example.com/gizmos" يعملان على هذا النشاط.

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_view_http_gizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
    </intent-filter>
    <intent-filter android:label="@string/filter_view_example_gizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="gizmos" />
    </intent-filter>
</activity>

 

لاحظ أن مرشحي الغرض يختلفان فقط بواسطة عنصر <data>. على الرغم من أنه من الممكن تضمين عدة عناصر <data> في المرشح نفسه..

فمن المهم أن تقوم بإنشاء مرشحات منفصلة عندما يكون في نيتك الإعلان عن عناوين URL فريدة..

(مثل مجموعة محددة من النظام “scheme” و host)، لأن عناصر <data> المتعددة في نفس مرشح الغرض..

يتم دمجها معاً لحساب جميع أشكال سماتها المدمجة. مثال، ضع في إعتبارك ما يلي:

<intent-filter>
  ...
  <data android:scheme="https" android:host="www.example.com" />
  <data android:scheme="app" android:host="open.my.app" />
</intent-filter>

 

قد يبدو كما لو أن هذا لا يدعم سوى https://www.example.com و app://open.my.app.

مع ذلك، فهو يدعم هذين، بالإضافة إلى هذا: app://www.example.com و https://open.my.app.

بعد إضافة مرشحات الغرض مع URIs لمحتوى النشاط إلى إيضاح التطبيق، يتمكن الأندرويد من توجيه أي غرض يتطابق مع URI إلى تطبيقك أثناء وقت التشغيل.

لمعرفة المزيد حول تعيين مرشحات الغرض، راجع السماح لتطبيقات أخرى ببدء نشاطك.

 

 

 

 

 

 

قراءة البيانات من الأغراض الوارده


بمجرد بدء النظام لنشاطك من خلال مرشح غرض، يمكنك إستخدام البيانات المقدمة من الغرض لتحديد ما تحتاج إلى تقديمه.

قم بإستدعاء ()getData ودالة ()getAction لإسترداد البيانات والإجراءات المرتبطة بالغرض الوارد.

يمكنك إستدعاء هذه الدوال في أي وقت أثناء دورة حياة النشاط، ولكن يجب عليك القيام بذلك بشكلٍ عام أثناء الإستدعاءات الأولى مثل ()onCreate أو ()onStart .

 

في ما يلي مقتطف يوضح كيفية إسترداد البيانات من غرض:

KOTLIN

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main)

    val action: String? = intent?.action
    val data: Uri? = intent?.data
}

 

JAVA

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();
}

 

 

 

أتبع أفضل الممارسات هذه لتحسين تجربة المستخدم: إنشاء روابط عميقة لمحتوى التطبيق إنشاء روابط عميقة لمحتوى التطبيق

 

– الرابط العميق يجب أن ينقل المستخدمين مباشرة إلى المحتوى، دون أي مطالبات أو صفحات بينية أو تسجيلات دخول.

تأكد من أن المستخدمين يمكنهم رؤية محتوى التطبيق حتى لو لم يفتحوا التطبيق من قبل.

لا بأس في مطالبة المستخدمين بالتفاعلات تالياً أو عندما يفتحوا التطبيق من المشغّل. هذا هو نفس مبدأ التجربة أول نقرة مجانيه لمواقع الويب.

 

– أتبع إرشادات التصميم الموضحة في ميزة التنقل بواسطة “رجوع” و “أعلى” حتى يتطابق تطبيقك مع توقعات المستخدمين للتنقل إلى الخلف بعد دخولهم لتطبيقك من خلال رابط عميق.

 

 

 

 

أختبر روابطك العميقة


يمكنك إستخدام “مصحح أخطاء اندرويد” Android Debug Bridge بإستخدام أداة مدير النشاط (am) لإختبار أن..

عناوين URI لمرشحات الغرض التي حددتها للروابط العميقة تؤدي إلى نشاط التطبيق الصحيح. يمكنك تشغيل أمر adb على جهاز أو محاكي.

البناء العام للجملة لإختبار مرشح غرض URI بإستخدام adb هو:

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d <URI> <PACKAGE>

 

مثال، يحاول الأمر التالي عرض نشاط التطبيق المستهدف المرتبط بـ URI المحدد.

$ adb shell am start
        -W -a android.intent.action.VIEW
        -d "example://gizmos" com.example.android

 

إعلان الإيضاح ومعالج الغرض الذي عينته أعلاه، يحدد العلاقة بين تطبيقك وموقع الويب وما يجب فعله بالإرتباطات الواردة.

مع ذلك، لكي يعامل النظام تطبيقك كمعالج إفتراضي لمجموعة من عناوين URI، يجب عليك أيضاً أن تطلب من النظام التحقق من هذا الإتصال.

يوضح الدرس التالي كيفية تنفيذ هذا التحقق.

لمعرفة المزيد حول الأغراض وروابط التطبيق، أطلع على المصادر التالية:

الأغراض ومرشحات الغرض
السماح لتطبيقات أخرى ببدء نشاطك
إضافة روابط تطبيقات الأندرويد بإستخدام أندرويد ستوديو

 

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات