Chrome 63 для IOS генерирует ошибку при объявлении переменных JavaScript с помощью LET - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть приложение PWA с PHP и JS.И он хорошо работает на Chrome, Firefox, Edge и Opera на рабочем столе Windows.Я также попробовал Chrome для Android, и он работал, как и ожидалось.

Но когда я попробовал его на Ipad 2 с Chrome 63, я даже не смог войти в свою панель управления.Когда я использовал удаленную отладку, я понял, что она выдает ошибку в объявлениях переменных Javascript с let.

    let usr = $('#usrInput').val();
    let pwd = $('#pwdInput').val();

Когда я изменил их на var, я наконец-то вошел в свою панель управления.

Но проблема в том, что существует множество объявлений переменных с let, и это трудно, а также неправильно сделать.Я также использую множество библиотек Javascript , которые, как я полагаю, полны объявлений let.

Я также не знаю, какие проблемы (кроме объявлений переменных) все еще будут возникатьДаже я изменил все let на var.

Это все о проблеме совместимости?Или я что-то пропустил?

ОБНОВЛЕНИЕ: Я изменил let объявления переменных на var.И, наконец, может войти в систему. Вот начальный и самый важный журнал ошибок:

app.js:217 Uncaught TypeError: Cannot read property 'userChoice' of undefined

, который запускается из:

    var promtEvent;
    window.addEventListener('beforeinstallprompt', (e) => {
        // Prevent Chrome 67 and earlier from automatically showing the prompt
        e.preventDefault();
        localStorage.setItem("uygulamaYuklendimi", false);
        btnAdd.removeAttribute("disabled", "");
        btnAdd.innerText = 'Uygulamayı Yükle';
        // Stash the event so it can be triggered later.
        promtEvent = e;
        // satinalmaKodu.style.display = 'block';
    });

   btnAdd.addEventListener('click', (e) => {
        // hide our user interface that shows our A2HS button
       $('#ayarlarModal').modal('hide');
       $('#satinalmaKodu').collapse();
        // Show the prompt
        if(promtEvent) promtEvent.prompt();
        // Wait for the user to respond to the prompt
        promtEvent.userChoice
            .then((choiceResult) => {
                promtEvent = null;
            });
   });

Я считаю, что Chrome не может инициализировать beforeinstallpromptсобытие, которое, вероятно, из-за проблемы совместимости.

Есть ли способ или какая-то библиотека, которая включает это поведение?

PS: Javascript isвключен для Safari и Chrome для IOS .

...