混合 App 打开 H5 调试开关

背景

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

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

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

有源码的应用

针对公司内部团队开发的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的,如夜神:

1416742-20190708102249704-1782794298.png

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

1416742-20190708102309088-1556523901.png

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

1416742-20190708102322900-987179264.png

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

1416742-20190708102342554-513116585.png

原生webview应用(非root状态)

准备工具

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

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

1416742-20190708102353040-317010181.png

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

1416742-20190708102403434-1072920801.png

在VirtualXposed中打开58同城

1416742-20190708102415649-423758754.png

X5内核应用(微信、QQ)

针对微信版本在7.0以下,可以只需要在任意聊天窗口输入debugx5.qq.com即可打开

1416742-20190708102427547-1685222971.png

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

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

1416742-20190708102438002-527107722.png

转载于:https://www.cnblogs.com/yyoba/p/11149614.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值