Ответ 1
Ваше решение здесь.
В принципе, вы можете использовать файлы cookie для определения того, установлено ли ваше приложение или нет.
В Javascript мне нужно получить уведомление, когда ошибка загрузки URL-адреса и переопределение поведения по умолчанию. Например, выполните следующие действия в iOS Safari...
window.location = 'http://pageDoesNotExist.badFormatting';
... появится это предупреждающее сообщение...
Я хотел бы приложить прослушиватель для такой ошибки и сделать что-то, а не показывать уродливое окно предупреждения.
Когда пользователь нажимает кнопку, мне нужно запустить приложение, если оно установлено, иначе мне нужно открыть App Store для ее загрузки моего приложения. принятое решение:
// Attempt to open app
window.location = 'myApp://';
// If app fails to open, will open app store 0.5 seconds later
window.setTimeout(
function() {
window.location = 'http://itunes.apple.com/myAppId';
},
500
);
Проблема в том, что первый window.location
открывает окно уродливого предупреждения, когда приложение не установлено. Затем код вернется в App Store. Когда пользователь возвращается из App Store обратно в Safari, уродливое окно предупреждения все еще существует. Насколько я знаю, window.onerror
не запускается на мобильном Safari.
Ваше решение здесь.
В принципе, вы можете использовать файлы cookie для определения того, установлено ли ваше приложение или нет.
Добавьте object
с атрибутом width="0"
в разметку, используйте URL-адрес страницы в качестве значения атрибута data
, затем перейдите в iTunes, если URL-адрес перенаправляется на страницу 404:
/* Find object element */
var hrefobj = document.querySelector("object");
/* Assign protocol string to data attribute of object element */
hrefobj.data = 'myApp://';
/* If the assignment fails */
if (hrefobj.data !== 'myApp://')
{
/* Redirect the window to the fallback URL */
window.location = 'http://itunes.apple.com/myAppId';
}