Есть ли общее состояние между приложениями для iPhone и мобильным сафари? - PullRequest
5 голосов
/ 30 июня 2010

У меня есть веб-сайт и собственное приложение для iphone.Приложение регистрирует пользовательский протокол.Я бы хотел, чтобы сайт автоматически перенаправлял к протоколу при необходимости, но только если у пользователя установлено приложение (чтобы избежать раздражающего диалога).Это означает, что мне нужно написать какое-то состояние из приложения, которое я могу прочитать в мобильном сафари, чтобы пометить приложение как установленное.Кажется, что куки не существуют в перекрестном процессе.Где еще я могу хранить свой маркер?

Ответы [ 2 ]

4 голосов
/ 30 июня 2010

Посмотрите на это сообщение в блоге, чтобы увидеть, как Apple делает это для приложения Mobile Me Gallery. Это включает в себя приложение, открывающее веб-сайт (на вашем сервере) в Safari, который загружает файл cookie «App Installed» в Safari.

3 голосов
/ 31 марта 2012

Вернувшись к этому вопросу, я нашел другое частичное решение. Оказывается, что диалоговое окно недопустимого протокола не блокирует выполнение JavaScript, как предупреждение.

Итак, вот как вы справляетесь с отступлением при запуске приложения из Интернета:

  • Зарегистрируйте обработчик setTimeout для перенаправления на резервную страницу (с помощью window.location.replace) после, скажем, 500 мс
  • Зарегистрируйте обработчик onBlur, который отменяет время ожидания
  • Открыть URL с вашим пользовательским протоколом
  • Если приложение установлено, браузер откроет приложение, размывая страницу и отменяя запасной вариант
  • Если приложение не установлено, пользователь увидит диалоговое окно не более 500 мсек, пока его не унесут на запасную страницу

Мне на самом деле это нравится больше, потому что, с одной стороны, люди, не имеющие приложения, иногда получают всплеск диалога на сайте, с другой стороны, это не влияет на первый запуск приложения. Техника, описанная в ответе Хантауба, вызывает первый пара отвлекающих переходов и вспышку мобильного сафари при первом запуске приложения.

...