diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index 820aced37d83..8d35f107a14d 100644
--- a/packages/webview_flutter/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.0.6
+
+* Updates iOS minimum version in README.
+
## 4.0.5
* Updates links for the merge of flutter/plugins into flutter/packages.
diff --git a/packages/webview_flutter/webview_flutter/README.md b/packages/webview_flutter/webview_flutter/README.md
index b30b8bc20fa1..cc14760782a5 100644
--- a/packages/webview_flutter/webview_flutter/README.md
+++ b/packages/webview_flutter/webview_flutter/README.md
@@ -9,9 +9,9 @@ A Flutter plugin that provides a WebView widget.
On iOS the WebView widget is backed by a [WKWebView](https://developer.apple.com/documentation/webkit/wkwebview).
On Android the WebView widget is backed by a [WebView](https://developer.android.com/reference/android/webkit/WebView).
-| | Android | iOS |
-|-------------|----------------|------|
-| **Support** | SDK 19+ or 20+ | 9.0+ |
+| | Android | iOS |
+|-------------|----------------|-------|
+| **Support** | SDK 19+ or 20+ | 11.0+ |
## Usage
Add `webview_flutter` as a [dependency in your pubspec.yaml file](https://pub.dev/packages/webview_flutter/install).
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 8d4492f977ad..9625e105df39 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
- 9.0
+ 11.0
diff --git a/packages/webview_flutter/webview_flutter/example/ios/Podfile b/packages/webview_flutter/webview_flutter/example/ios/Podfile
index 66509fcae284..d01e899e347b 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/Podfile
+++ b/packages/webview_flutter/webview_flutter/example/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '9.0'
+# platform :ios, '11.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
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 0759b31a2f25..f4a6c737e422 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
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -274,7 +274,7 @@
isa = PBXProject;
attributes = {
DefaultBuildSystemTypeForWorkspace = Original;
- LastUpgradeCheck = 1030;
+ LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "The Flutter Authors";
TargetAttributes = {
68BDCAE823C3F7CB00D9C032 = {
@@ -363,10 +363,12 @@
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
+ "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
@@ -377,6 +379,7 @@
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -552,7 +555,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -602,7 +605,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index d7453a8ce862..cb713d767632 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
UIViewControllerBasedStatusBarAppearance
+ CADisableMinimumFrameDurationOnPhone
+
+ UIApplicationSupportsIndirectInputEvents
+
diff --git a/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWebViewTests.m b/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWebViewTests.m
index f8229935cbe6..896acff82755 100644
--- a/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWebViewTests.m
+++ b/packages/webview_flutter/webview_flutter/example/ios/RunnerTests/FLTWebViewTests.m
@@ -39,19 +39,17 @@ - (void)testCanInitFLTWebViewFactory {
XCTAssertNotNil(factory);
}
-- (void)webViewContentInsetBehaviorShouldBeNeverOnIOS11 {
- if (@available(iOS 11, *)) {
- FLTWebViewController *controller =
- [[FLTWebViewController alloc] initWithFrame:CGRectMake(0, 0, 300, 400)
- viewIdentifier:1
- arguments:nil
- binaryMessenger:self.mockBinaryMessenger];
- UIView *view = controller.view;
- XCTAssertTrue([view isKindOfClass:WKWebView.class]);
- WKWebView *webView = (WKWebView *)view;
- XCTAssertEqual(webView.scrollView.contentInsetAdjustmentBehavior,
- UIScrollViewContentInsetAdjustmentNever);
- }
+- (void)webViewContentInsetBehaviorShouldBeNever {
+ FLTWebViewController *controller =
+ [[FLTWebViewController alloc] initWithFrame:CGRectMake(0, 0, 300, 400)
+ viewIdentifier:1
+ arguments:nil
+ binaryMessenger:self.mockBinaryMessenger];
+ UIView *view = controller.view;
+ XCTAssertTrue([view isKindOfClass:WKWebView.class]);
+ WKWebView *webView = (WKWebView *)view;
+ XCTAssertEqual(webView.scrollView.contentInsetAdjustmentBehavior,
+ UIScrollViewContentInsetAdjustmentNever);
}
- (void)testWebViewScrollIndicatorAticautomaticallyAdjustsScrollIndicatorInsetsShouldbeNoOnIOS13 {
@@ -76,16 +74,14 @@ - (void)testContentInsetsSumAlwaysZeroAfterSetFrame {
XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 200)));
- if (@available(iOS 11, *)) {
- // After iOS 11, we need to make sure the contentInset compensates the adjustedContentInset.
- UIScrollView *partialMockScrollView = OCMPartialMock(webView.scrollView);
- UIEdgeInsets insetToAdjust = UIEdgeInsetsMake(0, 0, 300, 0);
- OCMStub(partialMockScrollView.adjustedContentInset).andReturn(insetToAdjust);
- XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
- webView.frame = CGRectMake(0, 0, 300, 100);
- XCTAssertTrue(feq(webView.scrollView.contentInset.bottom, -insetToAdjust.bottom));
- XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 100)));
- }
+ // Make sure the contentInset compensates the adjustedContentInset.
+ UIScrollView *partialMockScrollView = OCMPartialMock(webView.scrollView);
+ UIEdgeInsets insetToAdjust = UIEdgeInsetsMake(0, 0, 300, 0);
+ OCMStub(partialMockScrollView.adjustedContentInset).andReturn(insetToAdjust);
+ XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
+ webView.frame = CGRectMake(0, 0, 300, 100);
+ XCTAssertTrue(feq(webView.scrollView.contentInset.bottom, -insetToAdjust.bottom));
+ XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 100)));
}
@end
diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml
index d6860f615ce9..2899d97fda9a 100644
--- a/packages/webview_flutter/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter/pubspec.yaml
@@ -2,7 +2,7 @@ name: webview_flutter
description: A Flutter plugin that provides a WebView widget on Android and iOS.
repository: https://github.com/flutter/packages/tree/main/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: 4.0.5
+version: 4.0.6
environment:
sdk: ">=2.17.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
index c11495d52bac..e288962fc2d9 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.2.0
+
+* Updates minimum Flutter version to 3.3 and iOS 11.
+
## 3.1.1
* Updates links for the merge of flutter/plugins into flutter/packages.
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Info.plist b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Info.plist
index bea41604e8aa..6ee44fd0e2fd 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Info.plist
+++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Info.plist
@@ -43,5 +43,7 @@
CADisableMinimumFrameDurationOnPhone
+ UIApplicationSupportsIndirectInputEvents
+
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFHTTPCookieStoreHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFHTTPCookieStoreHostApiTests.m
index 45eefc3897ec..185b4804371e 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFHTTPCookieStoreHostApiTests.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFHTTPCookieStoreHostApiTests.m
@@ -12,7 +12,7 @@ @interface FWFHTTPCookieStoreHostApiTests : XCTestCase
@end
@implementation FWFHTTPCookieStoreHostApiTests
-- (void)testCreateFromWebsiteDataStoreWithIdentifier API_AVAILABLE(ios(11.0)) {
+- (void)testCreateFromWebsiteDataStoreWithIdentifier {
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
FWFHTTPCookieStoreHostApiImpl *hostAPI =
[[FWFHTTPCookieStoreHostApiImpl alloc] initWithInstanceManager:instanceManager];
@@ -28,7 +28,7 @@ - (void)testCreateFromWebsiteDataStoreWithIdentifier API_AVAILABLE(ios(11.0)) {
XCTAssertNil(error);
}
-- (void)testSetCookie API_AVAILABLE(ios(11.0)) {
+- (void)testSetCookie {
WKHTTPCookieStore *mockHttpCookieStore = OCMClassMock([WKHTTPCookieStore class]);
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFWebViewHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFWebViewHostApiTests.m
index a0026ca01f41..0019205dbf8d 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFWebViewHostApiTests.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFWebViewHostApiTests.m
@@ -411,7 +411,7 @@ - (void)testEvaluateJavaScriptReturnsNSErrorData {
XCTAssertEqualObjects(errorData.localizedDescription, @"description");
}
-- (void)testWebViewContentInsetBehaviorShouldBeNeverOnIOS11 API_AVAILABLE(ios(11.0)) {
+- (void)testWebViewContentInsetBehaviorShouldBeNever {
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
FWFWebViewHostApiImpl *hostAPI = [[FWFWebViewHostApiImpl alloc]
initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger))
@@ -454,16 +454,14 @@ - (void)testContentInsetsSumAlwaysZeroAfterSetFrame {
XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 200)));
- if (@available(iOS 11, *)) {
- // After iOS 11, we need to make sure the contentInset compensates the adjustedContentInset.
- UIScrollView *partialMockScrollView = OCMPartialMock(webView.scrollView);
- UIEdgeInsets insetToAdjust = UIEdgeInsetsMake(0, 0, 300, 0);
- OCMStub(partialMockScrollView.adjustedContentInset).andReturn(insetToAdjust);
- XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
-
- webView.frame = CGRectMake(0, 0, 300, 100);
- XCTAssertTrue(feq(webView.scrollView.contentInset.bottom, -insetToAdjust.bottom));
- XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 100)));
- }
+ // Make sure the contentInset compensates the adjustedContentInset.
+ UIScrollView *partialMockScrollView = OCMPartialMock(webView.scrollView);
+ UIEdgeInsets insetToAdjust = UIEdgeInsetsMake(0, 0, 300, 0);
+ OCMStub(partialMockScrollView.adjustedContentInset).andReturn(insetToAdjust);
+ XCTAssertTrue(UIEdgeInsetsEqualToEdgeInsets(webView.scrollView.contentInset, UIEdgeInsetsZero));
+
+ webView.frame = CGRectMake(0, 0, 300, 100);
+ XCTAssertTrue(feq(webView.scrollView.contentInset.bottom, -insetToAdjust.bottom));
+ XCTAssertTrue(CGRectEqualToRect(webView.frame, CGRectMake(0, 0, 300, 100)));
}
@end
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.h
index 605ed53394b2..d2e9bdd71ce8 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.h
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.h
@@ -72,7 +72,6 @@ extern WKUserScriptInjectionTime FWFWKUserScriptInjectionTimeFromEnumData(
*
* @return A WKAudiovisualMediaType or -1 if data could not be converted.
*/
-API_AVAILABLE(ios(10.0))
extern WKAudiovisualMediaTypes FWFWKAudiovisualMediaTypeFromEnumData(
FWFWKAudiovisualMediaTypeEnumData *data);
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.m
index 528c9565617e..5fbbf2e21a77 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFDataConverters.m
@@ -118,7 +118,6 @@ WKUserScriptInjectionTime FWFWKUserScriptInjectionTimeFromEnumData(
return -1;
}
-API_AVAILABLE(ios(10.0))
WKAudiovisualMediaTypes FWFWKAudiovisualMediaTypeFromEnumData(
FWFWKAudiovisualMediaTypeEnumData *data) {
switch (data.value) {
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFHTTPCookieStoreHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFHTTPCookieStoreHostApi.m
index 79a3a684b805..f27b175a2110 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFHTTPCookieStoreHostApi.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFHTTPCookieStoreHostApi.m
@@ -20,8 +20,7 @@ - (instancetype)initWithInstanceManager:(FWFInstanceManager *)instanceManager {
return self;
}
-- (WKHTTPCookieStore *)HTTPCookieStoreForIdentifier:(NSNumber *)identifier
- API_AVAILABLE(ios(11.0)) {
+- (WKHTTPCookieStore *)HTTPCookieStoreForIdentifier:(NSNumber *)identifier {
return (WKHTTPCookieStore *)[self.instanceManager instanceForIdentifier:identifier.longValue];
}
@@ -29,17 +28,10 @@ - (void)createFromWebsiteDataStoreWithIdentifier:(nonnull NSNumber *)identifier
dataStoreIdentifier:(nonnull NSNumber *)websiteDataStoreIdentifier
error:(FlutterError *_Nullable __autoreleasing *_Nonnull)
error {
- if (@available(iOS 11.0, *)) {
- WKWebsiteDataStore *dataStore = (WKWebsiteDataStore *)[self.instanceManager
- instanceForIdentifier:websiteDataStoreIdentifier.longValue];
- [self.instanceManager addDartCreatedInstance:dataStore.httpCookieStore
- withIdentifier:identifier.longValue];
- } else {
- *error = [FlutterError
- errorWithCode:@"FWFUnsupportedVersionError"
- message:@"WKWebsiteDataStore.httpCookieStore is only supported on versions 11+."
- details:nil];
- }
+ WKWebsiteDataStore *dataStore = (WKWebsiteDataStore *)[self.instanceManager
+ instanceForIdentifier:websiteDataStoreIdentifier.longValue];
+ [self.instanceManager addDartCreatedInstance:dataStore.httpCookieStore
+ withIdentifier:identifier.longValue];
}
- (void)setCookieForStoreWithIdentifier:(nonnull NSNumber *)identifier
@@ -47,15 +39,9 @@ - (void)setCookieForStoreWithIdentifier:(nonnull NSNumber *)identifier
completion:(nonnull void (^)(FlutterError *_Nullable))completion {
NSHTTPCookie *nsCookie = FWFNSHTTPCookieFromCookieData(cookie);
- if (@available(iOS 11.0, *)) {
- [[self HTTPCookieStoreForIdentifier:identifier] setCookie:nsCookie
- completionHandler:^{
- completion(nil);
- }];
- } else {
- completion([FlutterError errorWithCode:@"FWFUnsupportedVersionError"
- message:@"setCookie is only supported on versions 11+."
- details:nil]);
- }
+ [[self HTTPCookieStoreForIdentifier:identifier] setCookie:nsCookie
+ completionHandler:^{
+ completion(nil);
+ }];
}
@end
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewConfigurationHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewConfigurationHostApi.m
index a083a2a031ef..c51042f8c56c 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewConfigurationHostApi.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewConfigurationHostApi.m
@@ -117,28 +117,10 @@ - (void)setAllowsInlineMediaPlaybackForConfigurationWithIdentifier:(nonnull NSNu
WKWebViewConfiguration *configuration =
(WKWebViewConfiguration *)[self webViewConfigurationForIdentifier:identifier];
- if (@available(iOS 10.0, *)) {
- WKAudiovisualMediaTypes typesInt = 0;
- for (FWFWKAudiovisualMediaTypeEnumData *data in types) {
- typesInt |= FWFWKAudiovisualMediaTypeFromEnumData(data);
- }
- [configuration setMediaTypesRequiringUserActionForPlayback:typesInt];
- } else {
- for (FWFWKAudiovisualMediaTypeEnumData *data in types) {
- switch (data.value) {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- case FWFWKAudiovisualMediaTypeEnumNone:
- configuration.requiresUserActionForMediaPlayback = false;
- break;
- case FWFWKAudiovisualMediaTypeEnumAudio:
- case FWFWKAudiovisualMediaTypeEnumVideo:
- case FWFWKAudiovisualMediaTypeEnumAll:
- configuration.requiresUserActionForMediaPlayback = true;
- break;
-#pragma clang diagnostic pop
- }
- }
+ WKAudiovisualMediaTypes typesInt = 0;
+ for (FWFWKAudiovisualMediaTypeEnumData *data in types) {
+ typesInt |= FWFWKAudiovisualMediaTypeFromEnumData(data);
}
+ [configuration setMediaTypesRequiringUserActionForPlayback:typesInt];
}
@end
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewHostApi.m
index ceaa346c8747..c3c253346054 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewHostApi.m
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFWebViewHostApi.m
@@ -20,11 +20,10 @@ - (instancetype)initWithFrame:(CGRect)frame
if (self) {
_objectApi = [[FWFObjectFlutterApiImpl alloc] initWithBinaryMessenger:binaryMessenger
instanceManager:instanceManager];
- if (@available(iOS 11.0, *)) {
- self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
- if (@available(iOS 13.0, *)) {
- self.scrollView.automaticallyAdjustsScrollIndicatorInsets = NO;
- }
+
+ self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+ if (@available(iOS 13.0, *)) {
+ self.scrollView.automaticallyAdjustsScrollIndicatorInsets = NO;
}
}
return self;
@@ -34,16 +33,15 @@ - (void)setFrame:(CGRect)frame {
[super setFrame:frame];
// Prevents the contentInsets from being adjusted by iOS and gives control to Flutter.
self.scrollView.contentInset = UIEdgeInsetsZero;
- if (@available(iOS 11, *)) {
- // Above iOS 11, adjust contentInset to compensate the adjustedContentInset so the sum will
- // always be 0.
- if (UIEdgeInsetsEqualToEdgeInsets(self.scrollView.adjustedContentInset, UIEdgeInsetsZero)) {
- return;
- }
- UIEdgeInsets insetToAdjust = self.scrollView.adjustedContentInset;
- self.scrollView.contentInset = UIEdgeInsetsMake(-insetToAdjust.top, -insetToAdjust.left,
- -insetToAdjust.bottom, -insetToAdjust.right);
+
+ // Adjust contentInset to compensate the adjustedContentInset so the sum will
+ // always be 0.
+ if (UIEdgeInsetsEqualToEdgeInsets(self.scrollView.adjustedContentInset, UIEdgeInsetsZero)) {
+ return;
}
+ UIEdgeInsets insetToAdjust = self.scrollView.adjustedContentInset;
+ self.scrollView.contentInset = UIEdgeInsetsMake(-insetToAdjust.top, -insetToAdjust.left,
+ -insetToAdjust.bottom, -insetToAdjust.right);
}
- (void)observeValueForKeyPath:(NSString *)keyPath
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/webview_flutter_wkwebview.podspec b/packages/webview_flutter/webview_flutter_wkwebview/ios/webview_flutter_wkwebview.podspec
index b76cc48ed804..b51dc0d96df8 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/ios/webview_flutter_wkwebview.podspec
+++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/webview_flutter_wkwebview.podspec
@@ -19,6 +19,6 @@ Downloaded by pub (not CocoaPods).
s.module_map = 'Classes/FlutterWebView.modulemap'
s.dependency 'Flutter'
- s.platform = :ios, '9.0'
- s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
+ s.platform = :ios, '11.0'
+ s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
index c486fae80962..e1ecff0e4d68 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml
@@ -2,11 +2,11 @@ name: webview_flutter_wkwebview
description: A Flutter plugin that provides a WebView widget based on Apple's WKWebView control.
repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_wkwebview
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 3.1.1
+version: 3.2.0
environment:
- sdk: ">=2.17.0 <3.0.0"
- flutter: ">=3.0.0"
+ sdk: ">=2.18.0 <3.0.0"
+ flutter: ">=3.3.0"
flutter:
plugin: