Как НЕ выполнять программы после location.replace()IOS

Программируем под IOS
Anonymous
Как НЕ выполнять программы после location.replace()

Сообщение Anonymous »

При выполнении следующего сценария отображается «hoge».
Почему отображается «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 вместо предыдущего, страница закроется до запуска приложения, и у меня возникнут проблемы.

    Код: Выделить всё

    (async function(){
    await new Promise((resolve)=>{
    location.replace("https://www.instagram.com"); // iOS Universal Links
    resolve();
    });
    window.close();
    })();
    
    
    Хорошо, если я использую setTimeout(), как показано ниже, но я не хочу использовать его, если это возможно, потому что думаю, что это зависит от времени.

    Код: Выделить всё

    (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

Вернуться в «IOS»