From 3c9bbe12d9aaef6d45d5c40bb33c44d3cf3a5a88 Mon Sep 17 00:00:00 2001 From: Denis Bourge Date: Fri, 14 Jun 2019 20:02:33 +0200 Subject: [PATCH] feat: allow web contents debugging in Chrome --- .../com/flutter_webview_plugin/FlutterWebviewPlugin.java | 4 +++- .../java/com/flutter_webview_plugin/WebviewManager.java | 8 ++++++-- lib/src/base.dart | 2 ++ lib/src/webview_scaffold.dart | 7 +++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java index 53c51434..087485cb 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -102,6 +102,7 @@ private void openUrl(MethodCall call, MethodChannel.Result result) { boolean useWideViewPort = call.argument("useWideViewPort"); String invalidUrlRegex = call.argument("invalidUrlRegex"); boolean geolocationEnabled = call.argument("geolocationEnabled"); + boolean debuggingEnabled = call.argument("debuggingEnabled"); if (webViewManager == null || webViewManager.closed == true) { webViewManager = new WebviewManager(activity, context); @@ -126,7 +127,8 @@ private void openUrl(MethodCall call, MethodChannel.Result result) { allowFileURLs, useWideViewPort, invalidUrlRegex, - geolocationEnabled + geolocationEnabled, + debuggingEnabled ); result.success(null); } diff --git a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java index 73604937..36268d17 100644 --- a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java +++ b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java @@ -346,7 +346,8 @@ void openUrl( boolean allowFileURLs, boolean useWideViewPort, String invalidUrlRegex, - boolean geolocationEnabled + boolean geolocationEnabled, + boolean debuggingEnabled ) { webView.getSettings().setJavaScriptEnabled(withJavascript); webView.getSettings().setBuiltInZoomControls(withZoom); @@ -362,7 +363,10 @@ void openUrl( webView.getSettings().setAllowUniversalAccessFromFileURLs(allowFileURLs); webView.getSettings().setUseWideViewPort(useWideViewPort); - + + // Handle debugging + webView.setWebContentsDebuggingEnabled(debuggingEnabled); + webViewClient.updateInvalidUrlRegex(invalidUrlRegex); if (geolocationEnabled) { diff --git a/lib/src/base.dart b/lib/src/base.dart index 1afa1f2c..26fd6dcd 100644 --- a/lib/src/base.dart +++ b/lib/src/base.dart @@ -130,6 +130,7 @@ class FlutterWebviewPlugin { bool useWideViewPort, String invalidUrlRegex, bool geolocationEnabled, + bool debuggingEnabled, }) async { final args = { 'url': url, @@ -149,6 +150,7 @@ class FlutterWebviewPlugin { 'useWideViewPort': useWideViewPort ?? false, 'invalidUrlRegex': invalidUrlRegex, 'geolocationEnabled': geolocationEnabled ?? false, + 'debuggingEnabled': debuggingEnabled ?? false, }; if (headers != null) { diff --git a/lib/src/webview_scaffold.dart b/lib/src/webview_scaffold.dart index 2e398462..37c94047 100644 --- a/lib/src/webview_scaffold.dart +++ b/lib/src/webview_scaffold.dart @@ -32,7 +32,8 @@ class WebviewScaffold extends StatefulWidget { this.allowFileURLs, this.resizeToAvoidBottomInset = false, this.invalidUrlRegex, - this.geolocationEnabled + this.geolocationEnabled, + this.debuggingEnabled = false, }) : super(key: key); final PreferredSizeWidget appBar; @@ -58,6 +59,7 @@ class WebviewScaffold extends StatefulWidget { final bool resizeToAvoidBottomInset; final String invalidUrlRegex; final bool geolocationEnabled; + final bool debuggingEnabled; @override _WebviewScaffoldState createState() => _WebviewScaffoldState(); @@ -153,7 +155,8 @@ class _WebviewScaffoldState extends State { appCacheEnabled: widget.appCacheEnabled, allowFileURLs: widget.allowFileURLs, invalidUrlRegex: widget.invalidUrlRegex, - geolocationEnabled: widget.geolocationEnabled + geolocationEnabled: widget.geolocationEnabled, + debuggingEnabled: widget.debuggingEnabled, ); } else { if (_rect != value) {