-
У меня есть страница HTML с кнопкой "Загрузить приложение". При нажатии пользователем iOS он перенаправляет пользователей в App Store через itms-services. Используемая здесь ссылка:
window.location.replace("itms-apps://itunes.apple.com/app/id578505616");
В мобильном браузере он выглядит так:
-
Facebook/Pinterest имеет браузер в приложении, который запрашивает согласие пользователя, прежде чем перенаправить пользователя из своего приложения в форме окна "Предупреждение" с помощью приложения "Отменить" или "Открыть", открытое приложение открывает внешнюю ссылку. Это выглядит так:
Похоже на это с помощью окна "Предупреждение":
Предполагая, что пользователь использует устройство iOS. Ожидаемое поведение здесь, когда нажата кнопка Open app, пользователь перенаправляется в приложение App Store. Однако мы наблюдаем за 10-секундную задержку до того, как произойдет фактическое перенаправление.
Смотрите видео ниже:
https://www.youtube.com/watch?v=_dgh7v-IsK8
https://www.youtube.com/watch?v=_LFHeRnBFgg
https://www.youtube.com/watch?v=82Y-kj-pMyw
Примечания:
- Я не могу воспроизвести это в любое время. Иногда это воспроизводится. Извините!
- После того, как устройство будет отложено в первый раз, все последующие ссылки на AppStores будут быстрыми, до примерно 1 дня. Перезагрузка телефона и/или очистка кеша браузера и/или переустановка Facebook/Pinterest не помогают воспроизвести это.
- Я попытался заменить ссылку itms-apps://на https://itunes.apple.com/us/app/trusper-tips-tutorials-how/id578505616?mt=8, но мы все еще испытывали задержку от времени до время.
- Задержка составляет ровно 10 секунд.
Почему происходит эта задержка? Это похоже на плохой пользовательский интерфейс.
Моя нынешняя теория заключается в том, что проблема стоит на стороне Apple. Причина заключается в том, что после нажатия кнопки Open app она находится вне нашего сайта, а также приложение Facebook/Pinterest. Я предполагаю, что после нажатия кнопки iOS обрабатывает фактический контекстный переключатель из одного приложения в другое. Поэтому он предполагает, что либо системный вызов, фактически открывающий URL-адрес, висит, либо системный вызов, открывающий приложение App Store, является? Тем не менее, я не смог доказать, что кто-либо является правдивым или ложным. У кого-нибудь есть лучшее объяснение?
[Редактировать 04/02/2015] Я могу подтвердить, что эта проблема по-прежнему существует на сегодняшний день на моем телефоне (iPhone 5S w/iOS 8.2). Я сделал некоторые дальнейшие исследования и нашел эту статью, которая, я думаю, предполагает, что это ошибка, связанная с системой iOS: OpenUrl затягивает приложение более 10 секунд