Как НЕ выполнять программы после 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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