إنشاء رابط عميق لوجهتك

الإعلانات

إنشاء رابط عميق لوجهتك

 

إنشاء رابط عميق لوجهتك

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

يتيح لك مكون التنقل، إنشاء نوعين مختلفين من الروابط العميقة: الروابط الصريحة و الروابط الضمنية.

 

 

 

 

إنشاء رابط عميق صريح


الرابط العميق الصريح هو، مثيل واحد لرابط عميق، يستخدم PendingIntent لنقل المستخدمين إلى موقع معين، بداخل تطبيقك.

كأمثله، قد تعرض رابط عميق صريح، كجزء من الإشعار، أو إختصار التطبيق، أو ودجت التطبيق.

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

عند تداخل المخططات البيانية، يتم أيضاً إضافة وجهة البدء من كل مستوى تداخل – أي وجهة البداية من كل عنصر <navigation> في التسلسل الهرمي – إلى الكومة.

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

تماماً كما لو أنه دخل التطبيق، من نقطة الدخول الخاصة به.

 

يمكنك إستخدام فئة NavDeepLinkBuilder لإنشاء PendingIntent، كما هو موضح في المثال أدناه.

لاحظ أنه إذا كان السياق المقدم ليس نشاطاً، فسيستخدم المُنشئ ()PackageManager.getLaunchIntentForPackage كنشاط إفتراضي لبدء التشغيل، إذا كان متاحاً.

 

KOTLIN

val pendingIntent = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.android)
    .setArguments(args)
    .createPendingIntent()

JAVA

PendingIntent pendingIntent = new NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.android)
    .setArguments(args)
    .createPendingIntent();

 

إذا كان لديك NavController ، فيمكنك أيضاً إنشاء رابط عميق عبر ()NavController.createDeepLink .

 

 

 

 

 

إنشاء رابط عميق لوجهتك

 

إنشاء رابط عميق ضمني


 

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

عند تشغيل رابط عميق ضمني، تعتمد حالة الكومة الخلفيه على ما إذا تم إطلاق Intent  غرض ضمني بإستخدام العلامة Intent.FLAG_ACTIVITY_NEW_TASK:

 

  • إذا تم تعيين العلامة، يتم مسح مهمة الكومة الخلفيه، وإستبدالها بواجهة الروابط العميقة.

كما هو الحال مع الرابط العميق الصريح، عند تداخل المخططات البيانية، يتم أيضاً إضافة وجهة البدء، من كل مستوى تداخل..

أي وجهة البداية من كل عنصر <navigation> في التسلسل الهرمي – إلى الكومة.

وهذا يعني أنه عندما يقوم المستخدم بالضغط على الزر “رجوع” من خلال وجهة الرابط العميق..

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

 

  • إذا لم يتم تعيين العلامه، فسوف تبقى أنت، على كومة المهام الخاصة بالتطبيق السابق..

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

بينما يبدأ زر “الأعلى” في تشغيل مهمة تطبيقك، على الوجهة الهرمية الأصل، بداخل المخطط البياني للتنقل.

 

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

 

1. في علامة التبويب تصميم في محرر التنقل، حدد الوجهة للرابط العميق.

2. أنقر على + في قسم الروابط العميقة، من لوحة السمات.

3. في مربع الحوار إضافة رابط عميق الذي يظهر، أدخل الـ URI.

لاحظ ما يلي:

– عناوين URIs بدون مخطط، تعتبر إما http أو https.

على سبيل المثال، http://www.google.com يطابق كلاً من http://www.google.com و https://www.google.com.

 

– العنصر المؤقت “النائب” ذو الصيغة {placeholder_name} ، يتطابق مع حرف أو أكثر.

على سبيل المثال، {http://www.example.com/users/{id  يتطابق مع http://www.example.com/users/4

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

إذا لم يتم تعريف “تحديد” أي معطيات بنفس الأسم، فسيتم إستخدام نوع السلسله String الإفتراضيه، لقيمة المعطى.

 

– يمكنك إستخدام الرمز *. لمطابقة 0 من الأحرف أو أكثر.

 

4. (إختياري). تحقق من، التحقق التلقائي، للطلب من قوقل أن تتحقق من أنك مالك عنوان URI.

لمزيد من المعلومات، راجع التحقق من روابط تطبيقات الأندرويد.

 

5. أنقر فوق إضافة. تظهر أيقونة الرابط  أعلى الوجهة المحددة، للإشارة إلى أن الوجهة تحتوي على رابط عميق.

6. أنقر فوق علامة التبويب نص للتبديل إلى طريقة عرض XML. تمت إضافة عنصر <deepLink> متداخل إلى الوجهة:

<deepLink
    android:id="@+id/deepLink"
    app:uri="https://www.google.com" />

 

لتمكين الربط العميق الضمني، يجب عليك أيضاً إجراء إضافات، إلى ملف manifest.xml لتطبيقك.

قم بإضافة عنصر <nav-graph> واحد، إلى نشاط، يشير إلى مخطط تنقل موجود، كما هو موضح في المثال التالي:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application ... >

        <activity name=".MainActivity" ...>
            ...

            <nav-graph android:value="@navigation/nav_graph" />

            ...

        </activity>
    </application>
</manifest>

 

 

عند إنشاء مشروعك، مكون التنقل، يستبدل عنصر <nav-graph> بـعناصر <intent-filter>  المنشأة، لمطابقة كافة الروابط العميقه، في مخطط التنقل.

 

ملاحظة: عنصر <nav-graph> غير مدعوم في أندرويد ستوديو الإصدار 3.0 أو الإصدار 3.1.

عند إستخدامك هذه الإصدارات، يجب عليك بدلاً من ذلك، إضافة عنصر intent-filter يدوياً. لمزيد من المعلومات، راجع إنشاء روابط عميقة لمحتوى التطبيق.

 

للحصول على مشروع كامل للتنقل، و يحتوي على أمثلة للروابط العميقه، راجع الكود التجريبي للملاحه.

 


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

الإعلانات

اترك رد