From 8cb75813d9b2c82f045e63ccc4e1637387c4d0f8 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 8 Apr 2018 08:32:44 -0400 Subject: [PATCH 1/8] Added reloading (Android) --- .../com/flutter_webview_plugin/FlutterWebviewPlugin.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 1cbac2c7..d75c605b 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -48,6 +48,9 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "resize": resize(call, result); break; + case "reload": + reload(call, result); + break; default: result.notImplemented(); break; @@ -111,6 +114,11 @@ private void close(MethodCall call, MethodChannel.Result result) { } } + private void reload(MethodCall call, MethodChannel.Result result) { + if (webViewManager != null) { + webViewManager.reload(call, result); + } + } private void eval(MethodCall call, final MethodChannel.Result result) { if (webViewManager != null) { webViewManager.eval(call, result); From 503c7f8deedcbe1e3b2c5391e73e9f0556597dec Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 8 Apr 2018 08:33:36 -0400 Subject: [PATCH 2/8] Added reloading (Android) --- .../java/com/flutter_webview_plugin/WebviewManager.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 3c645124..7823e9bd 100644 --- a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java +++ b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java @@ -123,6 +123,12 @@ public void onReceiveValue(String value) { }); } + void reload(MethodCall call, MethodChannel.Result result) { + if (webView != null) { + webView.reload(); + } + } + void resize(FrameLayout.LayoutParams params) { webView.setLayoutParams(params); } From 689f870f4665cdc7838612f7468d7da4899c7395 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 8 Apr 2018 08:34:30 -0400 Subject: [PATCH 3/8] Added reloading (Android) --- lib/src/base.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/src/base.dart b/lib/src/base.dart index 7d93e953..26cd549c 100644 --- a/lib/src/base.dart +++ b/lib/src/base.dart @@ -113,6 +113,8 @@ class FlutterWebviewPlugin { /// Will trigger the [onDestroy] event Future close() => _channel.invokeMethod("close"); + Future reload() => _channel.invokeMethod("reload"); + /// Close all Streams void dispose() { _onDestroy.close(); From f12c7f06ec0810c241dfb8633915e1d289d15a5e Mon Sep 17 00:00:00 2001 From: howardt12345 Date: Wed, 11 Apr 2018 12:13:42 -0400 Subject: [PATCH 4/8] Added navigation (Android) --- .../FlutterWebviewPlugin.java | 20 +++++++++++++++++++ .../WebviewManager.java | 20 +++++++++++++++++++ lib/src/base.dart | 4 ++++ 3 files changed, 44 insertions(+) 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 d75c605b..d09d3ade 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -51,6 +51,12 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "reload": reload(call, result); break; + case "back": + back(call, result); + break; + case "forward": + forward(call, result); + break; default: result.notImplemented(); break; @@ -114,6 +120,20 @@ private void close(MethodCall call, MethodChannel.Result result) { } } + + private void back(MethodCall call, MethodChannel.Result result) { + if (webViewManager != null) { + webViewManager.back(call, result); + } + } + + private void forward(MethodCall call, MethodChannel.Result result) { + if (webViewManager != null) { + webViewManager.forward(call, result); + } + } + + private void reload(MethodCall call, MethodChannel.Result result) { if (webViewManager != null) { webViewManager.reload(call, result); 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 7823e9bd..53a87bfa 100644 --- a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java +++ b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java @@ -129,7 +129,27 @@ void reload(MethodCall call, MethodChannel.Result result) { } } + void back(MethodCall call, MethodChannel.Result result) { + if (webView != null && webView.canGoBack()) { + webView.goBack(); + } + } + + void forward(MethodCall call, MethodChannel.Result result) { + if (webView != null && webView.canGoForward()) { + webView.goForward(); + } + } + void resize(FrameLayout.LayoutParams params) { webView.setLayoutParams(params); } + + boolean canGoBack() { + return webView.canGoBack(); + } + + boolean canGoForward() { + return webView.canGoForward(); + } } diff --git a/lib/src/base.dart b/lib/src/base.dart index 26cd549c..556ac1ac 100644 --- a/lib/src/base.dart +++ b/lib/src/base.dart @@ -115,6 +115,10 @@ class FlutterWebviewPlugin { Future reload() => _channel.invokeMethod("reload"); + Future goBack() => _channel.invokeMethod("back"); + + Future goForward() => _channel.invokeMethod("forward"); + /// Close all Streams void dispose() { _onDestroy.close(); From 2895745736a6485300fc0347a3cfbe518f55c458 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 20 May 2018 18:37:30 -0400 Subject: [PATCH 5/8] Fixed bad code format --- .../java/com/flutter_webview_plugin/FlutterWebviewPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d09d3ade..d9c37e9c 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -54,7 +54,7 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "back": back(call, result); break; - case "forward": + case "forward": forward(call, result); break; default: From a664715fde33d8c69c08c01809514e0ec117c708 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 20 May 2018 18:40:04 -0400 Subject: [PATCH 6/8] Commented functions with explanations --- lib/src/base.dart | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/src/base.dart b/lib/src/base.dart index 556ac1ac..abcc8365 100644 --- a/lib/src/base.dart +++ b/lib/src/base.dart @@ -113,10 +113,16 @@ class FlutterWebviewPlugin { /// Will trigger the [onDestroy] event Future close() => _channel.invokeMethod("close"); + /// Reloads the WebView. + /// This is only available on Android for now. Future reload() => _channel.invokeMethod("reload"); - + + /// Navigates back on the Webview. + /// This is only available on Android for now. Future goBack() => _channel.invokeMethod("back"); - + + /// Navigates forward on the Webview. + /// This is only available on Android for now. Future goForward() => _channel.invokeMethod("forward"); /// Close all Streams From 59d130df15d2dfd9c37d41a425913a50d4cb30e9 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 20 May 2018 18:42:12 -0400 Subject: [PATCH 7/8] Added comments --- .../flutter_webview_plugin/FlutterWebviewPlugin.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 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 d9c37e9c..15beb933 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -120,20 +120,26 @@ private void close(MethodCall call, MethodChannel.Result result) { } } - + /** + * Navigates back on the Webview. + */ private void back(MethodCall call, MethodChannel.Result result) { if (webViewManager != null) { webViewManager.back(call, result); } } - + /** + * Navigates forward on the Webview. + */ private void forward(MethodCall call, MethodChannel.Result result) { if (webViewManager != null) { webViewManager.forward(call, result); } } - + /** + * Reloads the Webview. + */ private void reload(MethodCall call, MethodChannel.Result result) { if (webViewManager != null) { webViewManager.reload(call, result); From a90f83714975a387b4198cb5cbff0322f493c8f3 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Sun, 20 May 2018 18:43:14 -0400 Subject: [PATCH 8/8] Added comments --- .../WebviewManager.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) 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 53a87bfa..489cbf95 100644 --- a/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java +++ b/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java @@ -122,19 +122,25 @@ public void onReceiveValue(String value) { } }); } - + /** + * Reloads the Webview. + */ void reload(MethodCall call, MethodChannel.Result result) { if (webView != null) { webView.reload(); } } - + /** + * Navigates back on the Webview. + */ void back(MethodCall call, MethodChannel.Result result) { if (webView != null && webView.canGoBack()) { webView.goBack(); } } - + /** + * Navigates forward on the Webview. + */ void forward(MethodCall call, MethodChannel.Result result) { if (webView != null && webView.canGoForward()) { webView.goForward(); @@ -144,11 +150,15 @@ void forward(MethodCall call, MethodChannel.Result result) { void resize(FrameLayout.LayoutParams params) { webView.setLayoutParams(params); } - + /** + * Checks if going back on the Webview is possible. + */ boolean canGoBack() { return webView.canGoBack(); } - + /** + * Checks if going forward on the Webview is possible. + */ boolean canGoForward() { return webView.canGoForward(); }