混合 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的,如夜神:

安裝xposed框架到系統中,激活Xposed框架

安裝WebviewDebugHook到系統中,在Xposed中選擇模塊勾選

以58同城舉例,打開之后進行到H5頁面,即可點擊inspect探測到當前H5頁面信息

原生webview應用(非root狀態)

准備工具

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

安裝VirtualXposed到系統中,此應用的工作原理類似於應用分身功能,會將應用安裝到一個獨立的環境當中。

將要調試的應用、WebviewDebugHook、Xposed 安裝到VirtualXposed中,勾選模塊管理->WebviewDebugHook

在VirtualXposed中打開58同城

X5內核應用(微信、QQ)

針對微信版本在7.0以下,可以只需要在任意聊天窗口輸入debugx5.qq.com即可打開

針對微信版本在7.0+,微信有對H5開關做了調整,需要在聊天窗口輸入如下:

進入到搜一搜->搜索微信小程序->進入到小程序中,即可識別到到URL:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM