كيفية إضافة روابط تطبيقات Android مع عمليات إعادة التوجيه

تعرف على كيفية تكوين روابط تطبيقات Android للتعامل مع عمليات إعادة التوجيه والروابط العميقة │ المستخدمين مباشرة إلى محتوى تطبيقك.

Intermediate

توفر روابط تطبيقات Android تجربة مستخدم سلسة من خلال السماح لعناوين URL HTTP/HTTPS بالفتح مباشرة في تطبيقك، متجاوزةً مربع حوار التوضيح في المتصفح. كما أنها تعود إلى المتصفح بشكل سلس إذا لم يكن تطبيقك مثبتًا. يتضمن تنفيذها، خاصة مع عمليات إعادة التوجيه، عدة خطوات أساسية.

فيما يلي كيفية إضافة روابط تطبيقات Android مع عمليات إعادة التوجيه:

1. تكوين ملف AndroidManifest.xml

تحتاج إلى إعلان مرشح النية في ملف AndroidManifest.xml للنشاط الذي سيتعامل مع الروابط الواردة. يحدد مرشح النية هذا لنظام Android عناوين URL التي يمكن لتطبيقك فتحها.

  • android:autoVerify="true": تتيح هذه السمة المهمة التحقق التلقائي من تطبيقك باعتباره المعالج الافتراضي لأنماط عناوين URL المحددة.
  • <action android:name="android.intent.action.VIEW" />: يحدد هذا أن مرشح النوايا يمكن الوصول إليه من بحث Google ويتعامل مع إجراءات العرض.
  • <category android:name="android.intent.category.DEFAULT" />: يتيح هذا لتطبيقك الاستجابة للنوايا الضمنية.
  • <category android:name="android.intent.category.BROWSABLE" />: هذا مطلوب لكي يكون مرشح النوايا قابلاً للوصول من متصفح الويب، مما يسمح للمستخدمين بفتح تطبيقك من رابط عميق في المتصفح.
  • <data> tag: يحدد هذا تنسيق URI الذي يمكن لتطبيقك التعامل معه. ستحدد المخطط (على سبيل المثال، https) والمضيف (نطاقك) واختياريًا المسار أو بادئة المسار.

مثال على إدخال AndroidManifest.xml:

<activity android:name=".DeepLinkActivity">
 <intent-filter android:autoVerify="true">
 <action android:name="android.intent.action.VIEW" />
 <category android:name="android.intent.category.DEFAULT" />
 <category android:name="android.intent.category.BROWSABLE" />  <data android:scheme="https"
 android:host="www.example.com"
 android:pathPrefix="/products" />  </intent-filter>
</activity> 

يعني هذا التكوين أن تطبيقك يمكنه التعامل مع عناوين URL مثل https://www.example.com/products/item123.

2. أعلن ارتباط الموقع الإلكتروني بـ assetlinks.json

للتحقق من أن تطبيقك هو المالك الشرعي لعناوين URL التي يدعي أنه يتعامل معها، يجب عليك استضافة ملف JSON لروابط الأصول الرقمية على موقع الويب الخاص بك. يقيم هذا الملف ارتباطًا آمنًا بين موقع الويب الخاص بك وتطبيق Android الخاص بك.

  1. إنشاء assetlinks.json: يجب أن يحتوي الملف على اسم حزمة التطبيق وبصمة شهادة SHA256.

    json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.your.packagename", "sha256_cert_fingerprints": ["YOUR_SHA256_FINGERPRINT"] } }] * package_name: معرف تطبيق Android الخاص بك. * sha256_cert_fingerprints: بصمة SHA256 لمفتاح التوقيع المستخدم لإنشاء ملف APK الخاص بك. يمكنك الحصول عليها من Google Play Console (إذا كنت تستخدم Play App Signing) أو باستخدام الأمر keytool لمخازن المفاتيح المحلية.

  2. استضافة الملف: قم بتحميل ملف assetlinks.json هذا إلى خادم الويب الخاص بك على https://your.domain.com/.well-known/assetlinks.json. تأكد من أنه يمكن الوصول إليه عبر HTTPS.

3. التعامل مع النية الواردة في نشاطك

في نشاط Android المحدد في AndroidManifest.xml، ستسترد بيانات Intent الواردة لتحديد المحتوى الذي سيتم عرضه.

class DeepLinkActivity : AppCompatActivity() {
 override fun onCreate(savedInstanceState: Bundle?) {  super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_deep_link)

 intent?.data?.let { uri ->
 // سيكون uri شيئًا مثل https://www.example.com/products/item123
 val productId = uri.lastPathSegment // يستخرج "item123"  // استخدم productId لجلب وعرض المحتوى ذي الصلة  findViewById<TextView>(R.id.textView).text = "Product ID: $productId"  }  }

 // التعامل مع النوايا الجديدة إذا كان النشاط قيد التشغيل بالفعل
 تجاوز fun onNewIntent(intent: Intent?) {  super.onNewIntent(intent)  setIntent(intent) // تحديث نية النشاط
 // معالجة بيانات النية الجديدة هنا، على غرار onCreate  intent?.data?.let { uri ->
 val productId = uri.lastPathSegment  findViewById<TextView>(R.id.textView).text = "معرف المنتج الجديد: $productId"  }  }
} 

4. كيفية عمل عمليات إعادة التوجيه مع روابط تطبيقات Android

تم تصميم روابط تطبيقات Android لتعمل بسلاسة مع عمليات إعادة التوجيه HTTP/HTTPS. عندما ينقر المستخدم على عنوان URL الذي يعيد التوجيه، يتبع نظام Android سلسلة إعادة التوجيه. النقطة المهمة هي أن عنوان URL النهائي بعد جميع عمليات إعادة التوجيه يجب أن يتطابق مع تكوين intent-filter في ملف AndroidManifest.xml الخاص بك ويكون مشمولًا بملف assetlinks.json الخاص بك.

  • عمليات إعادة التوجيه من جانب الخادم: إذا كان خادم الويب الخاص بك يقوم بإعادة توجيه 301 (دائم) أو 302 (مؤقت)، فسيتبعه نظام Android. على سبيل المثال، إذا أعاد https://www.example.com/old-product التوجيه إلى https://www.example.com/products/item123، وكان تطبيقك مهيئًا للتعامل مع https://www.example.com/products/، فسيتم فتح التطبيق مع item123.
  • سلوك الاحتياطي: إذا لم يكن التطبيق مثبتًا على جهاز المستخدم، أو إذا فشل التحقق من المجال، فسيتم فتح الرابط في متصفح الويب.