调试webview的H5页面

332 阅读2分钟

开篇:

本篇文章主要讲解内容为:通过whistle对网页抓包调试,尤其适合内嵌App内的H5网页

适合哪些开发人群看?

经常做hybird开发的同学

解决的痛点是什么?

charles及fiddler这类抓包工具只能抓http请求,对于一些只在App内才出现的效果无法进行元素审查、或查看日志等操作

如果您是以上人群并有上述痛点,请继续往下看,操作过程可能有点复杂,但只要一步步跟着做,配置好之后便可一劳永逸

好了,直接上干货:

安装及启动whistle

// 安装
npm install -g whistle
// 启动
whistle start 
// or
w2 start

访问whistle服务

浏览器地址栏输入: localhost:8899 ( whistle默认端口8899)

电脑安装证书:

左侧菜单:rules --> 上面菜单:https。在弹出框点击二维码即可下载证书,然后安装、并在系统中信任证书

配置网络及手机证书

  • 手机连接和电脑连接同一个局域网下的wifi
    • 配置手动代理 ip为电脑本机ip,端口8899(如果没有修改whistle默认端口的话)
    • 手机浏览器访问:rootca.pro下载证书,并在系统中信任证书

安装及配置SwitchyOmega

  • 安装:有梯子的同学可以在chrome插件商店安装,不方便的同学可以通过百度网盘下载SwitchyOmega。百度网盘下载链接: pan.baidu.com/s/1TsTImXZx… 提取码: ea8m
  • 配置
    • 配置浏览器代理

    • 在浏览器插件栏 开启代理

配置需要whistle拦截的域名

  • 填写如下配置,具体域名根据业务需求决定

image.png

image.png

  • 如果需要vconsole,配置方式如下:(需把vconsole源码贴上)

image.png 需要其他配置请移步whistle官方文档:wproxy.org/whistle/

or

常用配置参考:zhuanlan.zhihu.com/p/483975945

开始使用😸

本地启动项目服务,用手机浏览器访问刚刚配置的域名 (示例中为www.baidu.com) 就可以访问本地代码啦。(需保证whistle配的端口和本地项目端口保持一致)

小tip:直接看log

加上如下配置:

image.png 可在network中直接看log image.png

注意:

  • webpack的devServer的配置:websocket的host值要配成127.0.0.1才可使用热更新功能。
  • 代码中 使用console.warn()等语句可能会致使whistle报错进而导致页面崩溃,开发时候注意一下。

番外:

点击上面的“weinre”可以看到类似chrome DevTools的界面,此时用手机访问H5,如果在此处出现类似下图的内容,就代表拦截成功,快去愉快的调试吧~

image.png