Как отлаживать JavaScript на iPhone

Возникла небольшая проблема с JavaScript в веб-браузере на старом iPhone, а также на старом Samsung S4. Он прекрасно работает на 2-летнем телефоне Acer. Пытаясь определить проблему, я разбил JS на несколько script блоки и положить alert звонки в каждом:

<script>
    // ...JS code...
    alert('JS0 end');
</script>
<script>
try{
    alert('JS1 start');
    // button handler to scan a barcode
    function scan_barcode() {
        $('#div_viewarea').show();
        $('#input_barcode').val('');// clear the barcode field
        log('scanning...');//clear message field
        // install the handler to process a barcode fount by quagga
        Quagga.onDetected(quagga_found_barcode);//callback stops Quagga
        // The Quagga config data for the LiveStream method accessing the camera directly
        var quagga_config_livestream = {
            inputStream: {
                //constraints: { width: 500, height: 500 },
                //area: { top: '50%', right: '50%', left: '50%', bottom: '50%' },
                target: document.querySelector('#div_viewarea'),
                name: "Live",
                type: "LiveStream"
            },
            quagga_decoders
        };
        // initialize/start/run the Quagga barcode module
        Quagga.init(quagga_config_livestream, quagga_on_init);
        return;
    }
    alert('JS1 end');
} 
catch(e){ 
    alert('exception 1: ' + e);
}
</script>
<script>
    // ...JS code...
    alert('JS2 end');
</script>

На телефоне Acer я получаю диалоги для JS0/1/2, но на iPhone только для JS0+2, поэтому что-то идет не так в среднем блоке скриптов, где я показываю полный код JS.

При запуске страницы на Firefox в Windows, отладчик F12 не показывает никаких проблем. Но в браузерах мобильных телефонов нет отладчика F12.

Я также пытался получить исключение JS с try/catch, но диалог исключений не отображается.

Итак, мои вопросы: - в чем проблема в среднем блоке сценария? отладить код JS на телефоне? Есть ли лучшие методы, чем просто разделение на несколько блоков сценария?

Кстати, код во втором блоке не очень интересен на старых телефонах, потому что, согласно документации на Quagga, старые телефоны не поддерживают API MediaDevices. Но если я помещу весь код JS в один блок сценария, JS, преодолевший проблему в середине, вообще не запустится.


Обновить:

Я считаю это ошибкой в ​​старых браузерах / устройствах. Это работает хорошо в Firefox на Samsung S4, хотя. Мне удалось выделить проблему с присвоением переменной quagga_config_livestream но удивительно, что ни исключение, ни раннее alert показал свой диалог. Поскольку эта ошибка возникает в части кода JS, которая не относится к более старым устройствам, которые не поддерживают API MediaDevices, я просто поместил в песочницу несколько строк JS в своем собственном script заблокировать и не потрудиться установить новые инструменты для удаленной отладки этого кода на самом устройстве.

0 ответов

Другие вопросы по тегам