Общая проблема
В 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.