توفر الروابط العالمية على نظام iOS طريقة سلسة لتوجيه المستخدمين من موقع ويب إلى محتوى معين داخل تطبيقك. ومع ذلك، من المهم فهم أحد القيود الرئيسية المتعلقة بعمليات إعادة التوجيه: لا تعمل الروابط العالمية عمومًا مع عمليات إعادة التوجيه التلقائية بسبب إجراءات الأمان التي تطبقها Apple. إذا تم النقر على رابط عالمي ثم تمت إعادة التوجيه تلقائيًا، فسيفتح نظام iOS عادةً صفحة الويب الاحتياطية في Safari بدلاً من تشغيل تطبيقك.
هذا يعني أنه إذا كنت تنوي أن يفتح الرابط المعاد توجيهه تطبيقك، فمن المحتمل أن يفشل ذلك، وسيتم توجيه المستخدم إلى صفحة الويب في متصفحه.
على الرغم من هذا القيد، فإن إعداد الروابط العالمية أمر ضروري لتوفير تجربة مستخدم جيدة. وإليك كيفية تنفيذها:
1. تمكين المجالات المرتبطة في مشروع Xcode الخاص بك
أولاً، عليك إخبار تطبيق iOS الخاص بك أنه ينوي دعم الروابط العالمية. * افتح مشروعك في Xcode. * حدد هدف تطبيقك. * انتقل إلى علامة التبويب "التوقيع والقدرات". * انقر على زر "+ القدرة" وحدد "المجالات المرتبطة".
* أضف نطاقك (نطاقاتك) مع البادئة applinks: (على سبيل المثال، applinks:yourdomain.com).
2. إنشاء واستضافة ملف apple-app-site-association (AASA)
يخبر ملف JSON هذا iOS بعناوين URL على موقعك الإلكتروني التي يجب فتحها في تطبيقك.
* إنشاء الملف: قم بتسميته apple-app-site-association (بدون أي امتداد ملف). * المحتوى: يجب أن يحتوي الملف على JSON الذي يحدد معرف حزمة تطبيقك والمسارات التي يمكنه التعامل معها.
```json {
"applinks": { "apps": [],
"details": [ { "appID": "YOUR_TEAM_ID.YOUR_BUNDLE_ID",
"paths": [ "/path/to/content/*", "/another/path/*", "*" ] }
] } }
``` * استبدل `YOUR_TEAM_ID` بـ رقم Apple Developer Team ID و `YOUR_BUNDLE_ID` مع معرف حزمة تطبيقك. * تحدد مجموعة `paths` عناوين URL التي يمكن لتطبيقك التعامل معها. يمكنك استخدام أحرف البدل (مثل `*`) لمطابقة مسارات متعددة. - استضافة الملف: قم بتحميل هذا الملف إلى جذر خادم الويب الخاص بك أو داخل دليل
.well-known(على سبيل المثال،https://yourdomain.com/.well-known/apple-app-site-association).- يجب أن يكون الوصول إليه متاحًا عبر HTTPS وبدون أي عمليات إعادة توجيه.
- تأكد من أن نوع المحتوى هو
application/json.
3. التعامل مع الروابط العالمية في تطبيقك
يجب أن يستجيب تطبيقك عند تشغيله عبر رابط عالمي.
* قم بتنفيذ طريقة application(_:continue:restorationHandler:) في ملف AppDelegate.swift. * داخل هذه الطريقة، يمكنك استخراج عنوان URL ومعلماته لتوجيه المستخدم إلى المحتوى الصحيح داخل تطبيقك.
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL else {
return false }
// تعامل مع incomingURL, e.g., تحليل مسارها path and query parameters
print("عنوان URL الوارد: \(incomingURL)")
// مثال: انتقل إلى شاشة محددة شاشة استنادًا إلى عنوان URL
// handleUniversalLink(url: incomingURL) return true
} ``` اعتبارات بشأن عمليات إعادة التوجيه والحلول البديلة
- النقرات المباشرة فقط: تم تصميم الروابط العالمية لتعمل عندما ينقر عليها المستخدم مباشرةً.
- أتمتة التسويق والتتبع: إذا كنت تستخدم أدوات أتمتة التسويق أو تحتاج إلى قياس النقرات التي تتضمن عمليات إعادة التوجيه، فقد يتم إرسال المستخدمين إلى عنوان URL البديل على الويب بدلاً من تطبيقك. في مثل هذه الحالات، ضع في اعتبارك استخدام مزود روابط عميقة يقدم حلولاً لقياس الإحالة ويتكامل مباشرة مع مزودي خدمات البريد الإلكتروني.
- سهم التنقل في Safari: قد يعرض iOS سهم تنقل في Safari يمكن أن ينقل المستخدم إلى موقع الويب المرتبط به عند النقر عليه، حتى إذا كان التطبيق مثبتًا. إذا أعاد موقع الويب هذا التوجيه إلى App Store، فقد يؤدي ذلك إلى إرباك المستخدم.
- آلية الاحتياطية: إذا لم يكن تطبيقك مثبتًا، فسيفتح الرابط الشامل عنوان URL المحدد في Safari. يمكنك تنفيذ آلية احتياطية على موقع الويب الخاص بك لإعادة توجيه المستخدمين إلى App Store إذا لم يتم اكتشاف التطبيق.
اختبار الروابط الشاملة
- ثبّت تطبيقك على جهاز iOS فعلي أو محاكي.
- أرسل الرابط العالمي إلى بريدك الإلكتروني أو استضفه على صفحة ويب.
- اضغط على الرابط من عميل البريد الإلكتروني أو متصفح الويب على الجهاز.
- تحقق من أن الرابط يفتح تطبيقك مباشرة على المحتوى المقصود. إذا لم يكن التطبيق مثبتًا، فتحقق من إعادة التوجيه إلى عنوان URL الاحتياطي بشكل صحيح.
- اعلم أن شبكة توزيع المحتوى (CDN) من Apple قد تستغرق بعض الوقت (حتى 24 ساعة) لجلب ملف AASA الخاص بك.