[webview_flutter] Bump minimum Flutter version and iOS deployment target (#4361)
diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index 1e1d5aa..99b8a5c 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 9367d48..8d4492f 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 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
- <string>8.0</string>
+ <string>9.0</string>
</dict>
</plist>
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 f75e71d..62428d0 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 9d3a2ae..08c2e8b 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)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 2316d79..6b668eb 100644
--- a/packages/webview_flutter/webview_flutter/example/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/example/pubspec.yaml
@@ -3,7 +3,8 @@
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 f4783ff..eb7c856 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)clearCookies:(FlutterResult)result {
- if (@available(iOS 9.0, *)) {
- NSSet<NSString *> *websiteDataTypes = [NSSet setWithObject:WKWebsiteDataTypeCookies];
- WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore];
+ NSSet<NSString *> *websiteDataTypes = [NSSet setWithObject:WKWebsiteDataTypeCookies];
+ WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore];
- void (^deleteAndNotify)(NSArray<WKWebsiteDataRecord *> *) =
- ^(NSArray<WKWebsiteDataRecord *> *cookies) {
- BOOL hasCookies = cookies.count > 0;
- [dataStore removeDataOfTypes:websiteDataTypes
- forDataRecords:cookies
- completionHandler:^{
- result(@(hasCookies));
- }];
- };
+ void (^deleteAndNotify)(NSArray<WKWebsiteDataRecord *> *) =
+ ^(NSArray<WKWebsiteDataRecord *> *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.");
- }
+ [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 c6d926d..1604f27 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)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 @@
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)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 1602f1c..2e02199 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 @@
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 3976ff7..393a66e 100644
--- a/packages/webview_flutter/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/pubspec.yaml
@@ -2,11 +2,11 @@
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: