混合 App 打开 H5 调试开关

背景

随着如今移动端设备的硬件性能的提升,如今web页面的体验逐渐变得能够接受,如今不少的应用都采用的Hybrid开发模式,一方面有利用了原生设备的API的优点(性能好、用户体验好),另外一方面利用了web开发的优点(跨平台,开发成本低)。好比微信、QQ、58同城、美团、爱奇艺等等应用都是采用的Hybrid开发模式。java

Hybrid应用如何去作自动化呢?

Hybrid是native嵌套了web,对于native页面,咱们能够采用原生的自动化框架UIAutomator/XCUITest,而对于web页面,咱们能够采用ChromeDriver,二者相结合完成自动化测试。如今流行的说法是移动端内嵌的web能够称为H5,虽然严格意义上来讲H5不等同web。为了实现H5页面的自动化,其中H5页面的调试开关咱们是必需要打开,不然经过inspector元素探测工具是定位不到页面的元素信息。web

有源码的应用

针对公司内部团队开发的App,咱们能够要开发直接在源代码中加上以下的代码,而后从新编译打一个debug包小程序

if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {
    WebView.setWebContentsDebuggingEnabled(true);
}

无源码的应用

对于无源码的应用,如第三方线上App。这里分红两种状况,其一:App使用的是系统原生webview,如58同城、柠檬班App,其二:App使用的是通过定制过的webview,如微信、QQ腾讯系应用使用的是定制过的X5内核。微信小程序

原生webview应用(root状态)

准备工具微信

  • Xposed APK包
  • WebviewDebugHook APK包

此种方法须要提早对手机进行root,至于如何root能够在对应的机型论坛搜索解决方案,每家手机的方案都不一样。若是是模拟器,通常模拟器都是支持root的,如夜神:框架

安装xposed框架到系统中,激活Xposed框架工具

安装WebviewDebugHook到系统中,在Xposed中选择模块勾选性能

以58同城举例,打开以后进行到H5页面,便可点击inspect探测到当前H5页面信息测试

原生webview应用(非root状态)

准备工具spa

  • VirtualXposed APK包
  • Xposed APK包
  • WebviewDebugHook APK包

安装VirtualXposed到系统中,此应用的工做原理相似于应用分身功能,会将应用安装到一个独立的环境当中。

将要调试的应用、WebviewDebugHook、Xposed 安装到VirtualXposed中,勾选模块管理->WebviewDebugHook

在VirtualXposed中打开58同城

X5内核应用(微信、QQ)

针对微信版本在7.0如下,能够只须要在任意聊天窗口输入debugx5.qq.com便可打开

针对微信版本在7.0+,微信有对H5开关作了调整,须要在聊天窗口输入以下:

进入到搜一搜->搜索微信小程序->进入到小程序中,便可识别到到URL: