移动端调试
一些调试工具
直接在 chrome,firefox 等开启模拟器调试,简单直接,还能模拟网络等,但是无法 100% 还原手机的真实情况
chrome 远程调试功能
chrome://inspect/#devices
需要连接数据线,其次是设置比较繁琐,而且还限制了 android 手机。对于 IOS 的调试则可能要使用 Safari 的另一套工具
weinre:远程调试,在 PC 上生成一个像 chrome 开发工具一样的调试器,需要手动引入 js
Eruda、vConsole:在移动端页面上生成一个调试器,调试信息会挡住操作元素,查看复杂数据结构的 log 不方便,需要手动引入 js
安装各种虚拟机 sdk,在电脑上进行手机调试。能比较真实模拟手机,但是安装繁琐,操作不方便,无法模拟真实的手势操作
Eruda
https://github.com/liriliri/eruda
Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、捕获 XHR 请求、显示本地存储和 Cookie 信息等等。
- 按钮拖拽,面板透明度大小设置。
- Console 面板:捕获 Console 日志,支持 log、error、info、warn、dir、time/timeEnd、clear、count、assert、table;支持占位符,包括%c 自定义样式输出;支持按日志类型及正则表达式过滤;支持快捷命令加载 underscore、jQuery 库;支持 JavaScript 脚本执行。
- Elements 面板:查看标签内容及属性;查看应用在 Dom 上的样式;支持页面元素高亮;支持屏幕直接点击选取;查看 Dom 上绑定的各类事件。
- Network 面板:捕获请求,查看发送数据、返回头、返回内容等信息。
- Resources 面板:查看并清除 localStorage、sessionStorage 及 cookie;查看页面加载脚本及样式文件;查看页面加载图片。
- Sources 面板:查看页面源码;格式化 html,css,js 代码及 json 数据。
- Info 面板:输出 URL 及 User Agent;支持自定义输出内容。
- Snippets 面板:页面元素添加边框;加时间戳刷新页面;支持自定义代码片段。
使用
通过 CDN 使用:
<script src="//cdn.bootcss.com/eruda/1.5.2/eruda.min.js"></script> |
通过 npm 安装:
npm install eruda --save |
在页面中加载脚本:
<script src="node_modules/eruda/eruda.min.js"></script> |
Js 文件对于移动端来说略重(gzip 后大概 100kb)。建议通过 url 参数来控制是否加载调试器,比如:
;(function() { |
初始化时可以传入配置:
- container:用于插件初始化的 Dom 元素,如果不设置,默认创建 div 作为容器直接置于 html 根结点下面
- tool:指定要初始化哪些面板,默认加载所有
let el = document.createElement('div') |
vConsole
https://github.com/Tencent/vConsole
一个轻量、可拓展、针对手机网页的前端开发者调试面板
特性
- 查看 console 日志
- 查看网络请求
- 查看页面 element 结构
- 查看 Cookies、localStorage 和 SessionStorage
- 手动执行 JS 命令行
- 自定义插件
使用说明
下载 vConsole 的最新版本(不要直接下载 dev 分支下的 dist/vconsole.min.js
),复制 dist/vconsole.min.js
到项目中:
在 HTML 中引入 vConsole 模块
<script src="dist/vconsole.min.js"></script> |
在 vue 项目中:使用 npm 安装
npm install vconsole |
在 main.js 中引入
import VConsole from 'vconsole' |
weinre
http://people.apache.org/~pmuellr/weinre/docs/latest/Home.html
- Element: 查看/修改 dom,查看/修改 dom CSS
- Resources:查看/修改 localStorage, sessionStorage
- Network:查看网络请求
- Timeline:
- Console:查看控制台输出
不能做 JS 调试
使用
# 安装 |
spy-debugger
https://github.com/wuchangming/spy-debugger
微信调试,各种 WebView 样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需 USB 连接设备
spy-debugger 集成了weinre
,简化了weinre
需要给每个调试的页面添加 js 代码。原理是拦截所有 html 页面请求注入weinre
所需要的 js 代码。让页面调试更加方便
1、页面调试+抓包
2、操作简单,无需 USB 连接设备
3、支持 HTTPS
4、spy-debugger
内部集成了weinre
、node-mitmproxy
、AnyProxy
。
5、自动忽略原生 App 发起的 https 请求,只拦截 webview 发起的 https 请求。对使用了 SSL pinning 技术的原生 App 不造成任何影响。
6、可以配合其它代理工具一起使用(默认使用 AnyProxy) (设置外部代理)
基本使用
# 安装 |
自定义选项
# 自定义端口 |
m-console
https://github.com/fwon/m-console
手机远程调试工具,手机通过代理连接上 PC 后,可以在 PC 版浏览器打印 log 和错误日志
需要手动给每个调试的页面添加 js 代码
DebugGap-VIDE
https://www.debuggap.com/debug_webview.html
Mobile Debug
https://www.mobiledebug.com/
whistle
https://segmentfault.com/a/1190000016058875?utm_source=tag-newest
http://wproxy.org/whistle/
chii
https://github.com/liriliri/chii
抓包工具
AnyProxy
https://github.com/alibaba/anyproxy
Zan Proxy
https://youzan.github.io/zan-proxy/