iOS 9.3.2 Custom URL Scheme не запускает приложение из Safari
Моя веб-страница обнаруживает ОС и браузер, и в случае iOS Safari запустит мое приложение с использованием пользовательской схемы URL.
Он отлично работает на моих тестовых устройствах, но я вижу проблему с пользователем, использующим Safari/9.0 на iOS/9.3.2 - ссылка просто ничего не делает!
Пользовательские схемы URL больше не поддерживаются? Нужно ли вместо этого начать использовать универсальные ссылки?
Для тех, кто заинтересован, вот код Javascript, который я использую в браузерах iOS (который работает 99% времени):
var timer;
var heartbeat;
var lastInterval;
window.addEventListener("pageshow", function(evt){
clearTimers();
}, false);
window.addEventListener("pagehide", function(evt){
clearTimers();
}, false);
function getTime() {
return (new Date()).getTime();
}
// For all other browsers except Safari (which do not support pageshow and pagehide properly)
function intervalHeartbeat()
{
var now = getTime();
var diff = now - lastInterval - 200;
lastInterval = now;
if(diff > 1000)
{ // don't trigger on small stutters less than 1000ms
clearTimers();
}
}
function clearTimers()
{
clearTimeout(timer);
clearTimeout(heartbeat);
}
function intervalHeartbeat()
{
if (document.webkitHidden || document.hidden)
{
clearTimers();
}
}
function launch()
{
lastInterval = getTime();
heartbeat = setInterval(intervalHeartbeat, 200);
timer = setTimeout(function ()
{
logErrorToMyServer();
}, 2000);
//Launch app via custom URL scheme
window.location = "myapp://";
}
1 ответ
Пользовательские схемы URI были плохим вариантом с момента появления iOS 9.2. Apple определенно дала понять, что универсальные ссылки являются предпочтительным подходом к глубоким ссылкам.
Мне неизвестно о каких-либо ретроактивных изменениях, которые могли бы привести к тому, что Safari на 9.0 - 9.3.2 ничего не сделает в этой ситуации (по крайней мере, должно появиться всплывающее окно с ошибкой), но это будет по-прежнему не поддерживаться в обозримом будущем. будущее, и вы должны как можно скорее запустить и запустить Universal Links. Более подробная информация доступна в этом блоге.