С быстрым развитием мобильных устройств,H5
развитие также сталоF2E
незаменимая способность. Наиболее важной частью мобильной разработки является овладение навыками отладки.Bug
в бесформенном.
Статья впервые опубликована вблог Яртто, просьба указывать источник при перепечатке.
1. Резюме
Поскольку мобильная операционная система делится наiOS
а такжеAndroid
Есть две фракции, поэтому навыки отладки в этой статье также будут различаться по разным системам. Найдите наиболее подходящий и эффективный способ сделать больше с меньшими затратами.
2. iOS-устройства
Safari: инструмент отладки iphone, первый выбор для проверки ошибок и изменения стилей, нам нужно выполнить следующие настройки:
- Настройки браузера: Safari — «Настройки» — «Дополнительно» — установите флажок «Показать «Разработка в строке меню»».
- настройки iphone: Настройки-Safari-Дополнительно-Открыть веб-инспектор
Готово, на этот раз по телефонуSafari
открытьH5
страницы, мы можем увидеть через параметры разработки браузера:
Webview
а такжеH5
Тематические страницы с частыми взаимодействиями.Скачать первымXcode
, запускаем проект, выбираем эмуляторiphonex
, эмулятор будет открыт после компиляции следующим образом:
можно увидетьH5
Он уже запущен в "оболочке", можете попробовать его вызватьWebview
Метод взаимодействует с «оболочкой». Для получения дополнительных навыков отладки, пожалуйста, обратитесь к статье:Отладка симулятора iOS.
Конкретная функция отладки по-прежнему зависит от параметров разработки браузера, таких же, как и выше, поэтому я не буду вдаваться в подробности.
3. Захват пакетов
Charles: предпочтительный инструмент захвата пакетов для Mac OS, подходящий для просмотра и управления сетевыми запросами и анализа данных.Charles
Для захвата пакетов сначала необходимо настроить мобильный прокси.Wifi
- Настроить прокси (IP-адрес) - вручную, как показано ниже:
Настройте мобильный прокси и откройте его в это времяCharles
, вы получите напоминание о подтверждении, выберите Разрешить. Следующим шагом будет захват запроса телефона, но это рутинные операции, давайте немного продвинутее.
Интересно то, что мы можем заменить онлайн-файлы локальными файлами, чтобы облегчить отладку и удаленно локализовать онлайн-проблемы.
выберитеStructure
, найти заменяемый файл, контекстное меню -Map Local
,Как показано ниже:
В это время вы откроете всплывающее окно и заполните конкретную конфигурацию:
Хорошо, все готово, идите и измените локальные файлы, и вы больше никогда не будете бояться онлайн-отладки. Следует отметить, что при захватеHTTPS
запрос, чтобы установить сертификат доверия,нижебудет подробно объяснено.
Соответственно, Fiddler на платформе Windows имеет аналогичные функции, поэтому я не буду здесь вдаваться в подробности.
4. Шпион-отладчик
spy-debugger: Инструмент отладки для мобильных устройств, удобная страница телефонов для удаленной отладки, инструмент захвата.Сначала установим его:
> sudo npm install spy-debugger -g
Команда запуска:
> spy-debugger
В это время консоль выведет следующую информацию, указывающую на то, что служба запущена:
正在启动代理
本机在当前网络下的IP地址为:10.200.24.46
node-mitmproxy启动端口: 9888
浏览器打开 ---> http://127.0.0.1:50389
Последний шаг — установить мобильный прокси:10.200.24.46
,Номер порта:9888
. Чтобы добавить примечание:
-
Android
Настройка шагов прокси: Настройки -WLAN
- Длительное нажатие для выбора сети - Изменить сеть - Дополнительно - Настройки прокси - Вручную -
iOS
Установите шаги прокси: Настройки - Беспроводная локальная сеть - Проверить сеть -HTTP
руководство по прокси
Далее попробуем захватить пакеты:
Снова откройте страницу отладки:
HTTPS
Чтобы захватить пакет, вам нужно установить корневой сертификат,нижебудет подробно объяснено.5. Свисток
Вышеупомянутое рекомендует простой инструмент отладки, обновите его, чтобы увидеть более мощный инструмент отладки.whistle
.
Node
кроссплатформенныйWeb
Инструмент отладки прокси.
whistle
(произносится [ˈwɪsəl], пиньинь [wēisǒu]) основан наNode
Реализованный кроссплатформенный прокси-инструмент захвата пакетов и отладки имеет следующие основные функции:
- Проверить
HTTP
,HTTPS
содержание ответа на запрос - Проверить
WebSocket
,Socket
Полученные данные кадра - установить запрос
hosts
, вверх по течениюhttp/socks
играет роль - Изменить запрос
url
, метод, заголовок, содержимое - Измените код состояния ответа, заголовок, содержимое и поддержите локальную замену
- Исправлять
WebSocket
илиSocket
Полученные данные кадра - Встроенная отладка мобильных страниц
weinre
а такжеlog
- так как
HTTP
прокси или обратный прокси - для поддержки
Node
Письменные плагины для расширения функциональности
После общего понимания попробуем установить:
sudo npm install -g whistle
Зеркало Taobao: npm install whistle -g --registry=registry.npm.taobao.org
whistle
После завершения установки выполните командуwhistle help
илиw2 help
,Проверитьwhistle
справочная информация:
run Start a front service
start Start a background service
stop Stop current background service
restart Restart current background service
help Display help information
Здесь перечислены только некоторые команды, подробнее см. в справке w2.
Увидев вышеописанную операцию, почему бы не попробовать аббревиатуруw2 start
для запуска службы:
w2 start
См. следующий вывод, указывающий, что служба запущена нормально:
В это время откройте ссылку в браузере и настройте прокси на мобильном телефоне (так же, какCharles
), то вы можете успешно отлаживать. Примечательно,whistle
Функция далека от этого, больше расширений, пожалуйста, переместитеОфициальная документация сайта, предварительно просмотрите изображение стикера:
HTTPS
: чек об оплатеCapture HTTPS CONNECTs
6. Установите сертификат HTTPS
дляCharles
, установите сертификат следующим образом:
help-SSL - Proxying - install Charles root
Появится окно с запросом на установку сертификата:
chls.pro/ssl
, Установите сертификат доверия.дляspy-debugger
,HTTPS
Для захвата пакета необходимо установить корневой сертификат, выбратьRootCA
, отсканируйте QR-код и следуйте инструкциям, чтобы доверять сертификату. При установке сертификата следует помнить о нескольких вещах:
1. Мобильный телефон должен сначала установить прокси-сервер, а затем получить к нему доступ через мобильный браузер (не WeChat).http://s.xxx
(адресный QR-код) сертификат установки;
2. При первом вводе в эксплуатацию мобильного телефона необходимо установить сертификат, а мобильный телефон, на который уже установлен сертификат, не нужно устанавливать повторно;
3. Сотовые телефоны иPC
оставаться в той же сети (например, при подключении кWIFI
Вниз);
Помните: мобильное устройство и ПК должны быть подключены к одному WIFI.
Семь, реальная отладка машины
Выше было сказано много, но в самом процессе разработки мы не будем ждать запуска для проверки совместимости, поэтому вам может понадобиться заранее "отладить реальную машину". Вот два способа:
Chrome Remote Devices
: Зависит от Chrome для удаленной отладки, подходит для телефонов Android.Сначала включите
Android
В «Опциях разработчика» вашего телефона отметьте «Отладка по USB».Потом,
Chrome
Войти:chrome://inspect
для входа на страницу отладки.
Очень подробная статья, вы можете обратиться к:Chrome Remote Debugging.
localhost
Переменаip
, отсканируйте QR-код, чтобы отобразить мобильный телефон, это относительно просто.Вы можете установить браузерChrome
Плагин, используемый для преобразования ссылки на текущую страницу в QR-код, чтобы вы могли предварительно просмотреть его на реальной машине во время разработки, что очень удобно.
Восемь, инструменты отладки
Вот рекомендуемый инструмент отладки:vConsole, легкая, расширяемая панель отладки разработчика для мобильных веб-страниц. Установка проста:
npm install vconsole
если не используетсяAMD/CMD
спецификация, доступная непосредственно наHTML
введен вvConsole
модуль. Для облегчения последующего расширения рекомендуется<head>
Представлен в:
<head>
<script src="path/to/vconsole.min.js"></script>
<script>
var vConsole = new VConsole();
</script>
</head>
если используетсяAMD/CMD
спецификация, доступная по адресуmodule
внутреннее использованиеrequire()
Импортируйте модуль:
var VConsole = require('path/to/vconsole.min.js');
var vConsole = new VConsole();
осторожность,VConsole
ТолькоvConsole
, а не созданный объект.Так вручнуюnew
Перед созданием экземпляраvConsole
не будет вставлен на веб-страницу. Приблизительная функция выглядит следующим образом:
Выглядит идеально, но есть небольшой минус: сетевые запросы, нужно обновить страницу, но много встроенныхH5
У страницы нет возможности обновить страницу, поэтому клиенту необходимо сотрудничать с функцией обновления, чтобы облегчить отладку.
9. Анализ сценариев
Поскольку существует так много вариантов мобильной отладки, что мне выбрать на практике?
Сказав так много схем, вот краткое изложение применимых сценариев каждой схемы и выбор лучшей схемы отладки в соответствии с различными сценариями, чтобы вывод мог быть быстрее.Carry
Все в:
1.Safari
:iPhone
Инструмент отладки, лучший выбор для проверки ошибок и изменения стилей;
2.iOS
Симулятор: Реальная машина не требуется, подходит для отладкиWebview
а такжеH5
Функциональные страницы с частыми взаимодействиями;
3.Charles
:Mac OS
Предпочтительная система инструментов захвата, подходящая для просмотра, сети управления запросами, где анализ данных;
4.Fiddler
:ПодходитьWindows
платформа, сCharles
Аналогичным образом просматривайте и контролируйте сетевые запросы и анализируйте условия данных;
5.Spy-Debugger
: мощный инструмент для мобильной отладки, удобная удаленная отладка страниц мобильного телефона и инструменты захвата пакетов;
6.Whistle
: на основеNode
кроссплатформенныйWeb
Инструмент агентства отладки;
7.Chrome Remote Devices
:полагатьсяChrome
Для удаленной отладки подходит для удаленной отладки статических страниц на телефонах Android;
8.localhost
Переменаip
: Отладка реальной машины, подходящая для удаленной отладки статических страниц;
9.vConsole
: Встроенный проект, печать мобильного журнала, просмотр сетевого запроса и просмотрCookie
а такжеStorage
;
Десять, обработка белого экрана
Белый экран на мобильном терминале - самая неприятная проблема Вот несколько идей для анализа проблемы для справки.
1. Анализ схемы ☆
Как правило, если возникает проблема после подключения к Интернету, самое простое, о чем мы можем подумать, — это проблема, вызванная новым кодом. Следовательно, эффективным решением является «метод управляющих переменных».
2. Метод аннотации кода ☆
Необъяснимый белый экран подходит для ситуации, когда на странице нет аномального лога, и запрос при этом не отправляется, а проблема сосредоточена на одной странице. Этот тип проблемы более интуитивен, и он должен заключаться в том, что определенная страница имеет ненормальный или недопустимый код.return
, что приводит к прекращению рендеринга страницы, но не является исключением. В настоящее время лучшим выбором будет «метод комментирования кода». Вы можете комментировать код построчно, пока проблема не будет обнаружена.
3. Исключения библиотеки классов, проблемы совместимости ☆
Эта сцена будет часто сталкиваться, нам нужно использовать страницу, которую вы можете отлаживать ненормальным способом, напримерSafari
,Spy-Debugger
,Whistle
,vConsole
Просмотрите журнал исключений, чтобы быстро найти расположение библиотеки классов и найти замену или совместимые решения.
4. попробуй поймай ☆☆
Если ваш проект немониторинг исключений, затем в подозрительном фрагменте кода перейдите кTry Catch
Бар.
5.Отладочный пакет ☆☆☆
установить в свой проектvConsole
, и сотрудничать с клиентомdebug
плагин,360
Это наиболее эффективный способ мониторинга аномалий без тупиков.
6. Совместимость с синтаксисом ES6 ☆
Обычно мы проходимBabel
компилироватьES6
, но если дополнительная сторонняя библиотека классов имеет несовместимый синтаксис, младшая версия мобильного устройства будет ненормальной. Итак, первое использованиенадОпишите метод отладки, определите исключение, а затем увеличьтеpolyfill
Давайте будем совместимы.