Bladeren bron

Added navigation (Android)

howardt12345 7 jaren geleden
bovenliggende
commit
f0de3b2830

+ 20 - 0
android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java

@@ -51,6 +51,12 @@ public class FlutterWebviewPlugin implements MethodCallHandler {
             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 @@ public class FlutterWebviewPlugin implements MethodCallHandler {
         }
     }
 
+
+    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);

+ 20 - 0
android/src/main/java/com/flutter_webview_plugin/WebviewManager.java

@@ -129,7 +129,27 @@ class WebviewManager {
         }
     }
 
+    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();
+    }
 }

+ 4 - 0
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();