الروابط الشاملة: لماذا تفتح المتصفح بدل التطبيق
التحقق يحدث مرة عند التثبيت لا عند الضغط — ومن هنا تأتي أغلب حالات «يعمل عندي ولا يعمل عنده».
MrBebo
الإجابة المختصرة
الروابط الشاملة هي روابط ويب عادية يفتحها النظام في تطبيقك بدل المتصفح بعد أن يتحقق من ملف على نطاقك. التحقق يحدث مرة عند التثبيت لا عند الضغط، ولذلك أشيع أسباب الفشل هي: جهاز ثُبِّت عليه التطبيق قبل رفع الملف الصحيح، أو تفضيل «فتح في المتصفح» حفظه المستخدم، أو تطبيق مُرسِل يعرض الروابط في متصفح مدمج.
في هذه الصفحة
أعددت الروابط الشاملة، ورفعت ملف التحقق، وجرّبت على جهازك فعمل. ثم أرسل مستخدم رابطًا إلى صديقه فانفتح في المتصفح، وأرسله من تطبيق آخر فانفتح في التطبيق، وأرسله في بريد فانفتح في المتصفح من جديد. لا شيء عشوائي في ذلك، لكن الأسباب موزّعة على أربعة أماكن مختلفة.
الروابط الشاملة هي روابط ويب عادية يفتحها النظام في تطبيقك بدل المتصفح حين يثبت أن التطبيق يملك النطاق. وحين تفشل، تكون المشكلة في التحقق، أو في مسار الرابط، أو في السياق الذي فُتح منه، أو في قرار اتخذه المستخدم دون أن ينتبه.
كيف تعمل الآلية أصلًا؟
فهم الترتيب يفسّر أغلب حالات الفشل.
عند تثبيت التطبيق، ينزّل النظام ملفًا من نطاقك — على مسار محدد وعبر HTTPS — يذكر معرّف تطبيقك والمسارات التي يحق له فتحها. النظام يتحقق من ذلك مرة عند التثبيت، ويحتفظ بالنتيجة.
ثلاث نتائج تتبع ذلك مباشرة:
- التحقق يحدث عند التثبيت لا عند الضغط. تعديل الملف على الخادم بعد التثبيت لا يصل إلى الأجهزة المثبَّتة إلا بإعادة تثبيت أو تحديث.
- الملف يجب أن يُقدَّم بلا إعادة توجيه. كثير من الخوادم تعيد توجيه HTTP إلى HTTPS أو تضيف شرطة مائلة، وهذا وحده يُفشل التحقق صامتًا.
- نوع المحتوى مهم. يجب أن يُقدَّم كـ JSON صحيح، وبعض الخوادم تقدّمه كنص عادي أو تضيف امتدادًا فيفشل.
التحقق عملية تحدث مرة عند التثبيت. أغلب من يقول «الرابط لا يعمل» يجرّب على جهاز ثُبِّت عليه التطبيق قبل أن يُرفع الملف الصحيح.
لماذا يفتح المتصفح رغم صحة الإعداد؟
خمسة أسباب، مرتّبة بحسب تكرارها الفعلي.
| السبب | العلامة |
|---|---|
| المستخدم اختار «فتح في المتصفح» سابقًا | يعمل عند غيره لا عنده |
| الرابط مكتوب في تطبيق لا يدعم الفتح المباشر | يعمل من بعض التطبيقات لا كلها |
| المسار غير مذكور ضمن المسارات المسموحة | رابط يعمل وآخر لا |
| التحقق فشل عند التثبيت | لا يعمل إطلاقًا على جهاز بعينه |
| الرابط نُسخ ولُصق في شريط العنوان | لا يعمل بهذه الطريقة أبدًا |
السبب الأول هو الأكثر إرباكًا لأنه لا يظهر في أي سجل: النظام يتذكّر أن المستخدم فتح الرابط في المتصفح مرة، فيستمر على ذلك. والعلاج معروف للمطوّرين وغير معروف للمستخدمين: الضغط المطوّل على الرابط ثم اختيار الفتح في التطبيق، أو زيارة النطاق في المتصفح واستخدام شريط يظهر أعلى الصفحة.
السبب الخامس يستحق التوضيح: لصق رابط في شريط عنوان المتصفح لا يُفعّل الروابط الشاملة إطلاقًا، لأن المستخدم طلب المتصفح صراحة. هذا سلوك مقصود لا خلل، وهو أيضًا سبب أن اختبارك بهذه الطريقة يعطي نتيجة خاطئة.
لماذا تختلف النتيجة بحسب التطبيق المُرسِل؟
لأن الروابط لا تُفتح دائمًا بالطريقة نفسها.
بعض التطبيقات — خصوصًا تطبيقات المراسلة وقارئات البريد — تفتح الروابط داخل متصفح مدمج بدل تسليمها إلى النظام. والمتصفح المدمج لا يمرّ بآلية الروابط الشاملة أصلًا، فيُعرض الموقع مهما كان إعدادك صحيحًا.
وثلاث ملاحظات تتبع ذلك:
لا حيلة لك في ذلك من داخل تطبيقك. القرار عند التطبيق المُرسِل لا عندك.
صفحتك على الويب هي خطة الاحتياط. إن كان الرابط سيُعرض في متصفح أحيانًا، فيجب أن تعمل الصفحة وتعرض المحتوى نفسه، لا صفحة تقول «افتح التطبيق».
زر «فتح في التطبيق» على الصفحة مفيد لكنه ليس بديلًا: ضعه صغيرًا وواضحًا، ولا تجعله يحجب المحتوى.
ماذا يحدث حين لا يكون التطبيق مثبَّتًا؟
هذه نصف القصة وأكثرها أثرًا في النمو، ويُصمَّم لها غالبًا في آخر لحظة.
الرابط الشامل يفتح الصفحة في المتصفح إن لم يكن التطبيق موجودًا — وهذا هو السلوك الصحيح. لكن ما يراه الزائر عندها يقرر ما إذا كان سيثبّت التطبيق أصلًا.
ثلاثة قرارات تحسم ذلك:
- اعرض المحتوى نفسه، لا صفحة تحويل. من ضغط رابط قصة أو منتج يريد ذلك الشيء تحديدًا. صفحة تقول «حمّل التطبيق للمتابعة» تفقد أغلب الزوار فورًا، وتضرّ بترتيبك في البحث أيضًا.
- ضع زر التثبيت بعد المحتوى لا قبله. من قرأ ما جاء لأجله ووجده مفيدًا أقرب إلى التثبيت ممن مُنع منه.
- احتفظ بالوجهة بعد التثبيت إن استطعت. أن يفتح التطبيق بعد أول تشغيل على الصفحة نفسها التي طلبها المستخدم تجربة أفضل بكثير من إسقاطه في الشاشة الرئيسية — وهي تحتاج عملًا إضافيًا، وتستحقه للروابط التي تصل من مشاركات المستخدمين.
النقطة الأولى وحدها تفرّق بين موقع يخدم مستخدميك ويظهر في نتائج البحث، وآخر هو مجرد لافتة أمام تطبيق. وكثير من الفرق تكتشف هذا متأخرًا، بعد أن تكون صفحاتها قد فقدت ترتيبها لأنها لا تعرض شيئًا لمن يزورها.
المسارات: التفصيل الذي يكسر كل شيء
ملف التحقق يحدد المسارات المسموحة، وهنا يقع أكثر الأخطاء دقة.
- حدّد المسارات بدقة لا بعمومية. إعطاء التطبيق كل مسارات النطاق يعني أن صفحة الشروط وصفحة الدعم ستحاولان الفتح في التطبيق أيضًا، وهو سلوك سيئ.
- استثنِ ما يجب أن يبقى في المتصفح صراحة: صفحات الدفع، وتسجيل الدخول عبر طرف ثالث، والوثائق.
- انتبه للمسارات ذات المعاملات. الرابط الذي فيه معاملات استعلام يجب أن يُطابق القاعدة نفسها، وبعض الصيغ تتعامل معها بشكل مختلف.
- تعامل مع المسار غير المعروف داخل التطبيق. إن فُتح تطبيقك برابط لا يعرفه — نسخة أقدم لا تعرف مسارًا جديدًا مثلًا — فلا تعرض شاشة فارغة، بل افتح المتصفح أو الصفحة الرئيسية.
النقطة الرابعة هي الأكثر إهمالًا وأثرها مباشر: تطبيق قديم يفتح رابطًا لميزة جديدة يجب أن يتصرّف بأدب، لا أن يبتلع الرابط ويعرض لا شيء.
ماذا عن أندرويد؟
الآلية موازية باسم مختلف وبفروق تستحق الانتباه.
تعتمد أندرويد على ملف تحقق مماثل يُرفع على النطاق، مع تحقق تلقائي عند التثبيت. والفرق العملي الأهم أن المستخدم يستطيع تغيير الارتباط يدويًا من إعدادات التطبيق — فتح الروابط المدعومة — وهذا يعني أن تجربة المستخدمين أكثر تنوّعًا مما تفترض.
وبالمثل، الفشل الصامت هو النمط: لا رسالة خطأ ولا سجل ظاهر للمستخدم، فقط متصفح يُفتح. لذلك التحقق من ملف الارتباط بأدوات المنصة جزء من عملية النشر لا خطوة تُجرى مرة.
قائمة تشخيص عملية
حين يقول أحدهم «الرابط لا يعمل»، اسأل ستة أسئلة بالترتيب.
- من أين ضغط الرابط؟ رسالة، أم بريد، أم متصفح، أم لصق يدوي؟
- هل يعمل الرابط نفسه على جهاز آخر؟ يفصل بين مشكلة جهاز ومشكلة إعداد.
- متى ثُبِّت التطبيق؟ قبل رفع ملف التحقق أم بعده؟
- هل جرّب الضغط المطوّل واختيار الفتح في التطبيق؟ يكشف تفضيلًا محفوظًا.
- هل المسار ضمن المسموح؟ جرّب رابطًا آخر من مسار مختلف.
- هل الملف يُقدَّم صحيحًا الآن؟ اطلبه بنفسك وتحقّق من نوع المحتوى وغياب إعادة التوجيه.
والسؤال الثالث يحسم أكثر الحالات: إعادة تثبيت التطبيق على جهاز الشاكي تصلح الأمر فورًا إن كان التحقق هو السبب، وهذا اختبار حاسم بدقيقة واحدة.
وثمة عادة تشغيلية تمنع أغلب هذه المشكلات قبل ظهورها: اجعل التحقق من ملف الارتباط جزءًا من خط النشر. فحص آلي يطلب الملف من النطاق الحقيقي بعد كل نشر ويتحقق من ثلاثة أشياء — أنه يُقدَّم عبر HTTPS بلا إعادة توجيه، وأن نوع المحتوى صحيح، وأن معرّف التطبيق فيه يطابق ما تشحنه — يستغرق كتابته نصف ساعة ويكشف الأعطال في دقائق بدل أسابيع.
والسبب أن هذا الملف يُكسر بطرق لا علاقة لها بك: تغيير في إعدادات الخادم، أو طبقة تخزين مؤقت جديدة، أو نقل الموقع إلى مزوّد آخر. لا شيء من ذلك يمرّ بمراجعة كودك، وكلها تُسقط الروابط الشاملة صامتة — والمستخدمون لا يبلّغون عنها لأنهم لا يعرفون أن شيئًا كان يفترض أن يحدث.
مزيد في الويب والموبايل وأدوات المطوّر. ووثائق الروابط الشاملة تشرح صيغة الملف ومتطلبات الخادم بالتفصيل.
الخلاصة
الروابط الشاملة تُتحقَّق مرة عند التثبيت، ولذلك أغلب حالات «لا تعمل» سببها جهاز ثُبِّت عليه التطبيق قبل أن يصبح ملف التحقق صحيحًا، أو تفضيل حفظه المستخدم دون أن يعرف، أو تطبيق مُرسِل يفتح الروابط في متصفح مدمج لا يمرّ بالآلية أصلًا.
قدّم ملف التحقق بلا إعادة توجيه وبنوع محتوى صحيح، وحدّد المسارات بدقة واستثنِ الدفع وتسجيل الدخول، وتعامل مع المسار غير المعروف بأدب — واجعل صفحة الويب تعمل وحدها، لأن جزءًا من مستخدميك سيصلها في متصفح مهما فعلت.
أسئلة شائعة
- لماذا يعمل الرابط على جهازي ولا يعمل على جهاز آخر؟
- غالبًا لأن التحقق يحدث مرة عند التثبيت. جهاز ثُبِّت عليه التطبيق قبل رفع ملف التحقق الصحيح لن يفتح الروابط حتى يُعاد التثبيت أو يصل تحديث.
- لماذا يفتح الرابط في المتصفح حين يصل عبر رسالة؟
- لأن بعض تطبيقات المراسلة والبريد تفتح الروابط في متصفح مدمج بدل تسليمها إلى النظام، والمتصفح المدمج لا يمرّ بآلية الروابط الشاملة أصلًا. القرار عند التطبيق المُرسِل لا عندك.
- لماذا لا يعمل الرابط عند لصقه في شريط العنوان؟
- لأن المستخدم طلب المتصفح صراحة، والنظام يحترم ذلك. هذا سلوك مقصود لا خلل، وهو أيضًا سبب أن الاختبار بهذه الطريقة يعطي نتيجة مضلّلة.
- ما الذي يجب استثناؤه من المسارات المسموحة؟
- صفحات الدفع وتسجيل الدخول عبر طرف ثالث والوثائق. إعطاء التطبيق كل مسارات النطاق يجعل صفحات الشروط والدعم تحاول الفتح في التطبيق، وهو سلوك سيئ.
المصادر
- Supporting associated domains — Apple Developer
- Verify Android App Links — Android Developers
- Allowing apps and websites to link to your content — Apple Developer

MrBebo
محتوى تقني عربي يقدمه بهاء طه حول البرمجة، الذكاء الاصطناعي، Web2 وWeb3، تطوير التطبيقات، بناء المنتجات وأدوات المطورين.
عن المدوّنة