Browse Source

added support for reloading url with headers

charafau 6 năm trước cách đây
mục cha
commit
b037c08420

+ 7 - 1
android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java

@@ -204,7 +204,13 @@ public class FlutterWebviewPlugin implements MethodCallHandler, PluginRegistry.A
     private void reloadUrl(MethodCall call, MethodChannel.Result result) {
         if (webViewManager != null) {
             String url = call.argument("url");
-            webViewManager.reloadUrl(url);
+            Map<String, String> headers = call.argument("headers");
+            if (headers != null) {
+                webViewManager.reloadUrl(url, headers);
+            } else {
+                webViewManager.reloadUrl(url);
+            }
+
         }
         result.success(null);
     }

+ 8 - 2
android/src/main/java/com/flutter_webview_plugin/WebviewManager.java

@@ -373,8 +373,10 @@ class WebviewManager {
         webView.getSettings().setUseWideViewPort(useWideViewPort);
         
         // Handle debugging
-        webView.setWebContentsDebuggingEnabled(debuggingEnabled);
-        
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+            webView.setWebContentsDebuggingEnabled(debuggingEnabled);
+        }
+
         webViewClient.updateInvalidUrlRegex(invalidUrlRegex);
 
         if (geolocationEnabled) {
@@ -416,6 +418,10 @@ class WebviewManager {
         webView.loadUrl(url);
     }
 
+    void reloadUrl(String url, Map<String, String> headers) {
+        webView.loadUrl(url, headers);
+    }
+
     void close(MethodCall call, MethodChannel.Result result) {
         if (webView != null) {
             ViewGroup vg = (ViewGroup) (webView.getParent());

+ 5 - 2
lib/src/base.dart

@@ -202,8 +202,11 @@ class FlutterWebviewPlugin {
   Future<Null> show() async => await _channel.invokeMethod('show');
 
   // Reload webview with a url
-  Future<Null> reloadUrl(String url) async {
-    final args = <String, String>{'url': url};
+  Future<Null> reloadUrl(String url, {Map<String, String> headers}) async {
+    final args = <String, dynamic>{'url': url};
+    if (headers != null) {
+      args['headers'] = headers;
+    }
     await _channel.invokeMethod('reloadUrl', args);
   }