調試Android WebView中的h5頁面,通常就是通過alert和抓包工具來定位問題,效率低且無法直接調試樣式或打斷點,可謂是事倍功半。本文介紹一下我在項目中使用的新方法,能夠通過chrome的開發工具在原生 Android 應用中調試 WebView。
前提條件:
Android4.4+
基本原理:
1.在APP中啟用 WebView 調試,開啟調試后,Chrome DevTools才能對WebView進行遠程調試;
WebView.setWebContentsDebuggingEnabled(true);
2.通過訪問chrome://inspect/#devices訪問已啟用調試的 WebView 列表;
3.調試Webview與遠程調試普通頁面相同,遠程調試普通頁面也就是在安卓手機中安裝Chrome瀏覽器,使用USB 連接 PC,然后在 PC 的 Chrome 瀏覽器中打開 chrome://inspect/#devices 即可。
使用場景
1.測試包
如果團隊中有Android開發人員能夠提供測試包,只要在測試包中開啟Webview的debug模式就可以了。
2.線上包
對於線上的APP,一般debug開關都是關閉的,這就需要借助第三方工具,才能將debug開關打開,這個工具就是Xposed和WebviewDebugHook。
Xposed是一個框架,能夠集成很多功能模塊,這些模塊能夠在不修改APK的情況下,修改APP的運行方式。這里我們就需要WebviewDebugHook模塊來開啟APP的WebView debug模式。下面主要介紹一下安裝的步驟:
(1)獲取手機的root權限,這個推薦使用KingRoot,可能一次獲取root權限會失敗,建議失敗后多試幾次;
(2)下載適合版本的Xposed和WebviewDebugHook,並安裝。
目前Xposed的官網上給出的鏈接是這樣的:
Android5.0+:https://forum.xda-developers.com/attachment.php
Android4.0.4-4.4.4:de.robv.android.xposed.installer_v33_36570c.apk
而WebviewDebugHook的安裝文件是git項目https://github.com/feix760/WebViewDebugHook源碼中的WebViewDebugHook.apk。
(3)激活Xposed和WebViewDebugHook模塊
下圖是Android5.0+下的截圖,通過點擊【安裝/更新】激活Xposed,並切換菜單到模塊功能,然后勾選上WebViewDebugHook。
安裝完畢后,接下來就可以開開心心的調試Webview了。
另外還有兩個小Tips:
(1)訪問chrome://inspect/#devices如果chrome沒有檢測到Remote Target中的頁面,可能需要安裝一下chrome的ADB插件;
(2)對於騰訊系的APP,默認采用X5內核,需要將WebViewDebugHook的git目錄下的debug.conf文件拷貝到SD卡的根目錄下即可。