[webview_flutter] Add zoomEnabled to webview flutter platform interface (#4404)
This is the first-step task to add a zoomEnabled param on the WebView widget.
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
index 9e217a0..93c470c 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.1.0
+
+* Add `zoomEnabled` functionality to `WebSettings`.
+
## 1.0.0
* Extracted platform interface from `webview_flutter`.
\ No newline at end of file
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart
index b467daf..411cad0 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart
@@ -200,6 +200,7 @@
_addIfNonNull(
'allowsInlineMediaPlayback', settings.allowsInlineMediaPlayback);
_addSettingIfPresent('userAgent', settings.userAgent);
+ _addIfNonNull('zoomEnabled', settings.zoomEnabled);
return map;
}
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/web_settings.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/web_settings.dart
index 48b2de9..3d94153 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/web_settings.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/web_settings.dart
@@ -78,6 +78,7 @@
this.debuggingEnabled,
this.gestureNavigationEnabled,
this.allowsInlineMediaPlayback,
+ this.zoomEnabled,
required this.userAgent,
}) : assert(userAgent != null);
@@ -111,6 +112,9 @@
/// See also [WebView.userAgent].
final WebSetting<String?> userAgent;
+ /// Sets whether the WebView should support zooming using its on-screen zoom controls and gestures.
+ final bool? zoomEnabled;
+
/// Whether to allow swipe based navigation in iOS.
///
/// See also: [WebView.gestureNavigationEnabled]
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml
index bf43c26..166c55b 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml
@@ -4,7 +4,7 @@
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview_flutter%22
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 1.0.0
+version: 1.1.0
environment:
sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart
index 2f845ea..3914b20 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart
@@ -5,7 +5,6 @@
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
-
import 'package:webview_flutter_platform_interface/src/method_channel/webview_method_channel.dart';
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
@@ -229,6 +228,7 @@
debuggingEnabled: true,
gestureNavigationEnabled: true,
allowsInlineMediaPlayback: true,
+ zoomEnabled: false,
);
await webViewPlatform.updateSettings(settings);
@@ -245,6 +245,7 @@
'debuggingEnabled': true,
'gestureNavigationEnabled': true,
'allowsInlineMediaPlayback': true,
+ 'zoomEnabled': false,
},
),
],