diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index 1e1d5aa523ba..99b8a5c419ca 100644
--- a/packages/webview_flutter/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.14
+
+* Update minimum Flutter SDK to 2.5 and iOS deployment target to 9.0.
+
## 2.0.13
* Send URL of File to download to the NavigationDelegate on Android just like it is already done on iOS.
diff --git a/packages/webview_flutter/webview_flutter/example/ios/Flutter/AppFrameworkInfo.plist b/packages/webview_flutter/webview_flutter/example/ios/Flutter/AppFrameworkInfo.plist
index 9367d483e44e..8d4492f977ad 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/packages/webview_flutter/webview_flutter/example/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 8.0
+ 9.0
diff --git a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj
index f75e71d1743a..62428d041adf 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj
@@ -547,7 +547,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -597,7 +597,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWKNavigationDelegateTests.m b/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWKNavigationDelegateTests.m
index 9d3a2aed64eb..08c2e8b60832 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWKNavigationDelegateTests.m
+++ b/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWKNavigationDelegateTests.m
@@ -25,17 +25,14 @@ - (void)setUp {
}
- (void)testWebViewWebContentProcessDidTerminateCallsRecourseErrorChannel {
- if (@available(iOS 9.0, *)) {
- // `webViewWebContentProcessDidTerminate` is only available on iOS 9.0 and above.
- WKWebView *webview = OCMClassMock(WKWebView.class);
- [self.navigationDelegate webViewWebContentProcessDidTerminate:webview];
- OCMVerify([self.mockMethodChannel
- invokeMethod:@"onWebResourceError"
- arguments:[OCMArg checkWithBlock:^BOOL(NSDictionary *args) {
- XCTAssertEqualObjects(args[@"errorType"], @"webContentProcessTerminated");
- return true;
- }]]);
- }
+ WKWebView *webview = OCMClassMock(WKWebView.class);
+ [self.navigationDelegate webViewWebContentProcessDidTerminate:webview];
+ OCMVerify([self.mockMethodChannel invokeMethod:@"onWebResourceError"
+ arguments:[OCMArg checkWithBlock:^BOOL(NSDictionary *args) {
+ XCTAssertEqualObjects(args[@"errorType"],
+ @"webContentProcessTerminated");
+ return true;
+ }]]);
}
@end
diff --git a/packages/webview_flutter/webview_flutter/example/pubspec.yaml b/packages/webview_flutter/webview_flutter/example/pubspec.yaml
index 2316d7941427..6b668eb96af3 100644
--- a/packages/webview_flutter/webview_flutter/example/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/example/pubspec.yaml
@@ -3,7 +3,8 @@ description: Demonstrates how to use the webview_flutter plugin.
publish_to: none
environment:
- sdk: ">=2.12.0 <3.0.0"
+ sdk: ">=2.14.0 <3.0.0"
+ flutter: ">=2.5.0"
dependencies:
flutter:
diff --git a/packages/webview_flutter/webview_flutter/ios/Classes/FLTCookieManager.m b/packages/webview_flutter/webview_flutter/ios/Classes/FLTCookieManager.m
index f4783ffb4123..eb7c856b250d 100644
--- a/packages/webview_flutter/webview_flutter/ios/Classes/FLTCookieManager.m
+++ b/packages/webview_flutter/webview_flutter/ios/Classes/FLTCookieManager.m
@@ -25,25 +25,20 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
}
- (void)clearCookies:(FlutterResult)result {
- if (@available(iOS 9.0, *)) {
- NSSet *websiteDataTypes = [NSSet setWithObject:WKWebsiteDataTypeCookies];
- WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore];
-
- void (^deleteAndNotify)(NSArray *) =
- ^(NSArray *cookies) {
- BOOL hasCookies = cookies.count > 0;
- [dataStore removeDataOfTypes:websiteDataTypes
- forDataRecords:cookies
- completionHandler:^{
- result(@(hasCookies));
- }];
- };
-
- [dataStore fetchDataRecordsOfTypes:websiteDataTypes completionHandler:deleteAndNotify];
- } else {
- // support for iOS8 tracked in https://github.com/flutter/flutter/issues/27624.
- NSLog(@"Clearing cookies is not supported for Flutter WebViews prior to iOS 9.");
- }
+ NSSet *websiteDataTypes = [NSSet setWithObject:WKWebsiteDataTypeCookies];
+ WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore];
+
+ void (^deleteAndNotify)(NSArray *) =
+ ^(NSArray *cookies) {
+ BOOL hasCookies = cookies.count > 0;
+ [dataStore removeDataOfTypes:websiteDataTypes
+ forDataRecords:cookies
+ completionHandler:^{
+ result(@(hasCookies));
+ }];
+ };
+
+ [dataStore fetchDataRecordsOfTypes:websiteDataTypes completionHandler:deleteAndNotify];
}
@end
diff --git a/packages/webview_flutter/webview_flutter/ios/Classes/FlutterWebView.m b/packages/webview_flutter/webview_flutter/ios/Classes/FlutterWebView.m
index c6d926d3cfc2..1604f2756f31 100644
--- a/packages/webview_flutter/webview_flutter/ios/Classes/FlutterWebView.m
+++ b/packages/webview_flutter/webview_flutter/ios/Classes/FlutterWebView.m
@@ -272,19 +272,14 @@ - (void)onRemoveJavaScriptChannels:(FlutterMethodCall*)call result:(FlutterResul
}
- (void)clearCache:(FlutterResult)result {
- if (@available(iOS 9.0, *)) {
- NSSet* cacheDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
- WKWebsiteDataStore* dataStore = [WKWebsiteDataStore defaultDataStore];
- NSDate* dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
- [dataStore removeDataOfTypes:cacheDataTypes
- modifiedSince:dateFrom
- completionHandler:^{
- result(nil);
- }];
- } else {
- // support for iOS8 tracked in https://github.com/flutter/flutter/issues/27624.
- NSLog(@"Clearing cache is not supported for Flutter WebViews prior to iOS 9.");
- }
+ NSSet* cacheDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
+ WKWebsiteDataStore* dataStore = [WKWebsiteDataStore defaultDataStore];
+ NSDate* dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
+ [dataStore removeDataOfTypes:cacheDataTypes
+ modifiedSince:dateFrom
+ completionHandler:^{
+ result(nil);
+ }];
}
- (void)onGetTitle:(FlutterResult)result {
@@ -391,25 +386,18 @@ - (void)updateAutoMediaPlaybackPolicy:(NSNumber*)policy
case 0: // require_user_action_for_all_media_types
if (@available(iOS 10.0, *)) {
configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeAll;
- } else if (@available(iOS 9.0, *)) {
- configuration.requiresUserActionForMediaPlayback = true;
} else {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- configuration.mediaPlaybackRequiresUserAction = true;
-#pragma clang diagnostic pop
+ configuration.requiresUserActionForMediaPlayback = true;
}
break;
case 1: // always_allow
if (@available(iOS 10.0, *)) {
- configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
- } else if (@available(iOS 9.0, *)) {
- configuration.requiresUserActionForMediaPlayback = false;
- } else {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- configuration.mediaPlaybackRequiresUserAction = false;
+ configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
#pragma clang diagnostic pop
+ } else {
+ configuration.requiresUserActionForMediaPlayback = false;
}
break;
default:
@@ -468,11 +456,7 @@ - (void)registerJavaScriptChannels:(NSSet*)channelNames
}
- (void)updateUserAgent:(NSString*)userAgent {
- if (@available(iOS 9.0, *)) {
- [_webView setCustomUserAgent:userAgent];
- } else {
- NSLog(@"Updating UserAgent is not supported for Flutter WebViews prior to iOS 9.");
- }
+ [_webView setCustomUserAgent:userAgent];
}
#pragma mark WKUIDelegate
diff --git a/packages/webview_flutter/webview_flutter/ios/webview_flutter.podspec b/packages/webview_flutter/webview_flutter/ios/webview_flutter.podspec
index 1602f1c43daf..2e021994b8f4 100644
--- a/packages/webview_flutter/webview_flutter/ios/webview_flutter.podspec
+++ b/packages/webview_flutter/webview_flutter/ios/webview_flutter.podspec
@@ -18,6 +18,6 @@ Downloaded by pub (not CocoaPods).
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
- s.platform = :ios, '8.0'
+ s.platform = :ios, '9.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
end
diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml
index 3976ff74fef6..393a66e3f92e 100644
--- a/packages/webview_flutter/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/pubspec.yaml
@@ -2,11 +2,11 @@ name: webview_flutter
description: A Flutter plugin that provides a WebView widget on Android and iOS.
repository: https://github.com/flutter/plugins/tree/master/packages/webview_flutter/webview_flutter
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 2.0.13
+version: 2.0.14
environment:
- sdk: ">=2.12.0 <3.0.0"
- flutter: ">=2.0.0"
+ sdk: ">=2.14.0 <3.0.0"
+ flutter: ">=2.5.0"
flutter:
plugin: