🔗onestore.link

Разработчикам

Почему мой 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: на Mac navigator.maxTouchPoints равно 0.
  • На сервере сделайте ветку для компьютера безобидной: страница с кнопками обоих магазинов, а не страница без них.
  • onestore.link решает на сервере: в обычном браузере User-Agent iPhone и iPad сразу идут в App Store, Android — в Google Play, а все остальные, включая iPad в режиме компьютера, получают страницу с кнопками обоих магазинов и QR-кодом.
  • На этой странице кнопка App Store открывает App Store прямо на iPad, так что посетитель в одном касании от установки.

Как это сделать

Без SDK, без пересборки. Просто URL.

  1. 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. 2

    Дайте ветке для компьютера кнопки обоих магазинов

    Серверное перенаправление не может выполнить эту проверку, поэтому страницу, которую оно отдаёт «компьютерам», увидят и некоторые iPad. Разместите на ней кнопку App Store и кнопку Google Play, а для настоящих компьютеров — QR-код.

  3. 3

    Или доверьте маршрутизацию onestore.link

    Создайте onestore.link с двумя URL магазинов. Телефоны перенаправляются на сервере, а все остальные посетители, включая 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.

Готовы попробовать?

Бесплатно навсегда, без пароля. Ваша ссылка будет готова примерно за минуту.

Создать бесплатную ссылку
Собственное исследованиеЧто происходит со ссылкой на приложение, открытой внутри Instagram и TikTok: 74,000 измеренных редиректовПредзагрузки, которых никто не видит, webview TikTok, который не пускает в магазин, и App Store, открывающийся поверх страницы: что показывают наши логи редиректов.

Сравниваете инструменты? onestore.link vs onelink to →

Другие руководства

Узнать больше