跳转到内容

调试

await AndroidWebViewController.enableDebugging(true);

然后使用 Chrome 或 Edge remote debugging 工具检查 Android WebView。

final webKit = controller.platform as WebKitWebViewController;
await webKit.setInspectable(true);

是否可检查取决于 OS 版本和开发者设置。

final windows = controller.platform as WindowsWebViewController;
await windows.openDevTools();
final version = await WindowsWebViewController.getWebViewVersion();

getWebViewVersion() 可用于启动时确认 WebView2 Runtime 是否存在。

final linux = controller.platform as LinuxWebViewController;
await linux.setDeveloperExtrasEnabled(true);
await linux.openDevTools();

也可创建时启用:

final params = const LinuxWebViewControllerCreationParams(
developerExtrasEnabled: true,
);
await OhosWebViewController.enableDebugging(true);

建议仅在开发构建启用 ArkWeb 调试。

WebView 是 iframe,使用浏览器 DevTools 调试。同源内容可以直接查看和操作,跨域 iframe 内部由浏览器隔离。

await controller.setOnConsoleMessage((JavaScriptConsoleMessage message) {
debugPrint('[${message.level.name}] ${message.message}');
});

不要在未征得用户同意的情况下上传敏感页面 console 内容。