توسعهدهندگان
چرا 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، بدون ساخت دوباره. فقط یک URL.
- 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 همان 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 →