Почему отображается «hoge», а не переход к следующему экрану, хотя сначала выполняется location.replace()?
Код: Выделить всё
(async function(){
await new Promise((resolve)=>{
location.replace("https://www.instagram.com"); // iOS Universal Links
resolve();
});
alert("hoge");
})();
- iOS: срабатывает универсальная ссылка и запускается приложение. Эта страница закрывается с помощью window.close().
- Не для iOS: универсальная ссылка не срабатывает, и переход на эту страницу осуществляется как есть.
Если я выполню следующий скрипт на iOS вместо предыдущего, страница закроется до запуска приложения, и у меня возникнут проблемы.Хорошо, если я использую setTimeout(), как показано ниже, но я не хочу использовать его, если это возможно, потому что думаю, что это зависит от времени.Код: Выделить всё
(async function(){ await new Promise((resolve)=>{ location.replace("https://www.instagram.com"); // iOS Universal Links resolve(); }); window.close(); })();Окружающая средаКод: Выделить всё
(async function(){ await new Promise((resolve)=>{ location.replace("https://www.instagram.com"); // iOS Universal Links resolve(); }); setTimeout(function(){window.close();}, 500); })(); - iPhone 15 Pro Max
< li>iOS 17.4 - Safari.app
Подробнее здесь: https://stackoverflow.com/questions/783 ... on-replace