Browse Source

Added reloading url with headers
Fixed clearing cookies for ios

charafau 6 years ago
parent
commit
594c66c114
1 changed files with 19 additions and 3 deletions
  1. 19 3
      ios/Classes/FlutterWebviewPlugin.m

+ 19 - 3
ios/Classes/FlutterWebviewPlugin.m

@@ -92,8 +92,18 @@ static NSString *const CHANNEL_NAME = @"flutter_webview_plugin";
     }
 
     if (clearCookies != (id)[NSNull null] && [clearCookies boolValue]) {
-        [[NSURLSession sharedSession] resetWithCompletionHandler:^{
-        }];
+        if (@available(iOS 9.0, *)) {
+            NSSet *websiteDataTypes
+            = [NSSet setWithArray:@[
+                                    WKWebsiteDataTypeCookies,
+                                    ]];
+            NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+            
+            [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
+            }];
+        } else {
+            // Fallback on earlier versions
+        }
     }
 
     if (userAgent != (id)[NSNull null]) {
@@ -217,7 +227,13 @@ static NSString *const CHANNEL_NAME = @"flutter_webview_plugin";
 - (void)reloadUrl:(FlutterMethodCall*)call {
     if (self.webview != nil) {
 		NSString *url = call.arguments[@"url"];
-		NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
+		NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
+        NSDictionary *headers = call.arguments[@"headers"];
+        
+        if (headers != nil) {
+            [request setAllHTTPHeaderFields:headers];
+        }
+        
         [self.webview loadRequest:request];
     }
 }