المطوّرون
لماذا يفتح جهاز iPad صفحة الحاسوب بدل App Store؟
منذ iPadOS 13 يعرّف Safari على iPad نفسه على أنه Mac. إليك لماذا تفوّته إعادة التوجيه حسب الجهاز، وكيف تلتقطه.
الإجابة المختصرة
منذ iPadOS 13 يطلب Safari على iPad مواقع الحاسوب ويرسل User-Agent خاصًا بـ Mac («Macintosh; Intel Mac OS X 10_15_7»)، فتعامله إعادة التوجيه التي تبحث عن «iPad» على أنه حاسوب. لا يستطيع الخادم التمييز بينهما؛ أما في المتصفح، فإن User-Agent خاصًا بـ Mac مع navigator.maxTouchPoints أكبر من 1 يعني iPad. يرسل OneStoreLink (onestore.link) جهاز iPad كهذا إلى صفحة الحاسوب، وزر App Store فيها على بُعد نقرة واحدة من المتجر.
آخر مراجعة 2026-11-03
أنشأت رابطًا يرسل أجهزة iPhone إلى App Store وهواتف Android إلى Google Play، ويعمل على كل هاتف تجرّبه، ثم يصل شخص يستخدم iPad إلى صفحتك المخصّصة للحاسوب. شيفرتك ليست خاطئة: جهاز iPad كذب عمدًا بشأن هويته، لأن Apple أرادت أن تحصل أجهزة iPad على مواقع الحاسوب الكاملة. يشرح هذا الدليل ما يرسله iPad، ولماذا لا يستطيع الخادم كشفه، وكيف تكتشفه في المتصفح، وما الذي ينبغي أن تفعله إعادة التوجيه إلى المتجر معه.
المشكلة
- منذ iPadOS 13 يطلب Safari على iPad موقع الحاسوب افتراضيًا ويرسل User-Agent نفسه الذي يرسله Safari على Mac.
- اختبار مثل /iPad|iPhone/ على User-Agent لا يتطابق أبدًا، فيُعامَل iPad على أنه حاسوب.
- لا يوجد على الخادم أي دليل آخر: طلب iPad في وضع الحاسوب يبدو تمامًا مثل طلب Mac.
- إذا كان فرع الحاسوب يعرض صفحة ويب فقط بلا زر للمتجر، يعلق مستخدم iPad على بُعد خطوة من تطبيق كان بإمكانه تثبيته.
مع onestore.link
- في المتصفح، اعتبر User-Agent يحمل «Macintosh» مع أكثر من نقطة لمس واحدة جهاز iPad: قيمة navigator.maxTouchPoints على Mac هي 0.
- على الخادم، اجعل فرع الحاسوب غير ضار: صفحة فيها زرّا المتجرين، وليس أبدًا صفحة بلا زر.
- يتخذ onestore.link القرار على الخادم: في المتصفح العادي تذهب قيم User-Agent الخاصة بـ iPhone وiPad مباشرة إلى App Store، وAndroid إلى Google Play، ويحصل كل ما عدا ذلك، بما فيه iPad في وضع الحاسوب، على صفحة فيها زرّا المتجرين ورمز QR.
- في تلك الصفحة يفتح زر App Store متجر App Store على جهاز iPad نفسه، فيبقى الزائر على بُعد نقرة من التثبيت.
كيف تفعل ذلك
بلا SDK، وبلا إعادة بناء. مجرد رابط.
- 1
تعرّف على iPad في المتصفح
إذا كانت إعادة التوجيه لديك تعمل بـ JavaScript، فأضف فحصًا للمس إلى اختبار User-Agent. لا يُبلغ Mac أبدًا عن أكثر من نقطة لمس واحدة، أما iPad فيفعل.
// iPadOS 13+: يُبلغ Safari على iPad عن User-Agent خاص بـ Mac const ua = navigator.userAgent; const isIOS = /iPad|iPhone|iPod/.test(ua) || (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1); const isAndroid = /Android/i.test(ua); - 2
ضع زرّي المتجرين في فرع الحاسوب
لا تستطيع إعادة التوجيه من جهة الخادم إجراء هذا الفحص، لذا ستشاهد بعض أجهزة iPad الصفحة التي تقدّمها «للحواسيب». ضع فيها زر App Store وزر Google Play، إضافة إلى رمز QR للحواسيب الحقيقية.
- 3
أو دع onestore.link يتولّى التوجيه
أنشئ رابط onestore.link برابطَي متجريك. تُعاد توجيه الهواتف على الخادم، ويحصل كل زائر آخر، بما فيه أجهزة iPad في وضع الحاسوب، على صفحة فيها الزرّان ورمز QR. لا شيفرة تحتاج إلى صيانتها.
الأسئلة الشائعة
لماذا يرسل iPad قيمة User-Agent خاصة بـ Mac؟
منذ iPadOS 13 يطلب Safari على iPad نسخة الحاسوب من المواقع افتراضيًا، وللحصول عليها يعرّف نفسه على أنه Safari على macOS. يستطيع المستخدم إعادة موقع ما إلى نسخة الجوال، لكن معظم الناس لا يفعلون ذلك أبدًا.
هل يستطيع الخادم اكتشاف iPad يطلب موقع الحاسوب؟
ليس بشكل موثوق. قيمة User-Agent مطابقة لقيمة Mac، ولا توجد ترويسة طلب تكشف شاشة اللمس. يحتاج الاكتشاف إلى JavaScript في الصفحة، وهو ما لا تنفّذه إعادة توجيه 302 بسيطة.
هل يكفي navigator.maxTouchPoints وحده؟
استخدمه مع User-Agent: قيمة User-Agent تحمل «Macintosh» مع navigator.maxTouchPoints أكبر من 1 تعني iPad. وحده سيطابق أيضًا حواسيب Windows المحمولة ذات شاشات اللمس.
ماذا يرى مستخدم iPad مع onestore.link؟
في وضع الحاسوب الافتراضي في Safari، يرى صفحة الحاسوب: اسم التطبيق وأيقونته، وزر App Store، وزر Google Play، ورمز QR. النقر على App Store يفتح App Store على iPad. أما جهاز iPad الذي يرسل متصفحه User-Agent خاصًا بـ iPad فيُعاد توجيهه إلى App Store مباشرة.
مستعد لتجربته؟
مجاني إلى الأبد، بلا كلمة مرور. رابطك جاهز خلال دقيقة تقريبًا.
أنشئ رابطك المجانيتقارن بين الأدوات؟ onestore.link مقابل onelink to →