Android 中 WebView 的除錯方法
除錯Android WebView中的h5頁面,通常就是通過alert和抓包工具來定位問題,效率低且無法直接除錯樣式或打斷點,可謂是事倍功半。本文介紹一下我在專案中使用的新方法,能夠通過chrome的開發工具在原生 Android 應用中除錯 WebView。
前提條件:
Android4.4+
基本原理:
1.在APP中啟用 WebView 除錯,開啟除錯後,Chrome DevTools才能對WebView進行遠端除錯;
1 |
|
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卡的根目錄下即可。
相關文章
- UE Puerts 在 Android 的除錯方法Android除錯
- dailyLearning -- Safari/Chrome除錯WebViewAIChrome除錯WebView
- Appium Android 獲取WebView元素的方法APPAndroidWebView
- Android中WebView的使用指南:AndroidWebView
- Android WebView的坑AndroidWebView
- Android WebView 中的 Html 網頁定位操作AndroidWebViewHTML網頁
- Android除錯工具Genymotion的使用Android除錯
- [譯]使用開發工具來除錯 Beta 版 WebView除錯WebView
- Java程式中除錯Python程式方法Java除錯Python
- android 無線除錯Android除錯
- Android Studio中編譯除錯Launcher3Android編譯除錯
- Android除錯命令收錄Android除錯
- Android adb 網路除錯Android除錯
- Apache httpclient的execute方法除錯ApacheHTTPclient除錯
- Android除錯資料庫的福音:Android-Debug-DatabaseAndroid除錯資料庫Database
- Android WebView Resources$NotFoundExceptionAndroidWebViewException
- android webview總結AndroidWebView
- python五種除錯或排錯的方法Python除錯
- android中將原生請求的介面url的cookie同步到webview中。AndroidCookieWebView
- Android應用方法隱藏及反除錯技術淺析Android除錯
- 做一個可除錯的Android應用除錯Android
- Android webview JS 互動AndroidWebViewJS
- android webview秒開框架AndroidWebView框架
- 再學Android之WebViewAndroidWebView
- Mac下Android Framework原始碼環境搭建執行及除錯方法MacAndroidFramework原始碼除錯
- Hybrid App 應用 開發中 9 個必備知識點複習(WebView / 除錯 等)APPWebView除錯
- android studio 除錯 framework 層程式碼Android除錯Framework
- (學習)godot4.2 Android除錯GoAndroid除錯
- Android Studio程式碼除錯技巧篇Android除錯
- 深入理解Android逆向除錯原理Android除錯
- 簡單介紹vscode除錯container中的程式的方法步驟VSCode除錯AI
- 你不知道的Android WebView漏洞AndroidWebView
- Pycharm中Flask的除錯模式PyCharmFlask除錯模式
- Android Webview和ScrollView衝突和WebView使用總結AndroidWebView
- C/C++ 程式反除錯的方法C++除錯
- Vue生產環境除錯的方法Vue除錯
- Android FrameWork學習(二)Android系統原始碼除錯AndroidFramework原始碼除錯
- c 語言除錯方法(除錯 PHP 底層、擴充套件)除錯PHP套件