- Added `WebStorage`, `LocalStorage` and `SessionStorage` class to manage `window.localStorage` and `window.sessionStorage` JavaScript [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API)
- Added `supportZoom` webview option also on iOS
- Added `HttpOnly`, `SameSite`set cookie options
- Added `HttpOnly`, `SameSite` cookie options
- Updated `Cookie` class
- Added `animated` option to `scrollTo` and `scrollBy` webview methods
- Added error and message to the `ServerTrustChallenge` class for iOS (class used by the `onReceivedServerTrustAuthRequest` event)
- Added `copy`and `copyWithValue`methods for webview class options
- Added `copy` methods for webview class options
- Added `SslCertificate` class and `X509Certificate` class and parser
- Added `values` property for all the custom Enums
- Updated Android workaround to hide the Keyboard when the user click outside on something not focusable such as input or a textarea.
- Fixed `zoomBy`, `setOptions` webview methods on Android
- Fixed `databaseEnabled` android webview option default value to `true`
- Fixed `verticalScrollBarEnabled` and `horizontalScrollBarEnabled` on Android
- Fixed error caused by `pauseTimers` on iOS when the WebView has been disposed
- Fixed `ignoresViewportScaleLimits`, `dataDetectorTypes`, `suppressesIncrementalRendering`, `selectionGranularity` iOS-specific option when used in `initialOptions`
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.4.4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.9/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.0.0+hotfix.6/","dependencies":[]}],"android":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.4.4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.9/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.0.0+hotfix.6/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+3/","dependencies":[]}],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"e2e","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos"]},{"name":"path_provider_macos","dependencies":[]},{"name":"permission_handler","dependencies":[]}],"date_created":"2020-06-14 18:36:37.641339","version":"1.17.1"}
\ No newline at end of file
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.4.4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.10/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.0.1/","dependencies":[]}],"android":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.4.4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.10/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.0.1/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+3/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.0.1+1/","dependencies":[]}],"windows":[],"web":[]},"dependencyGraph":[{"name":"e2e","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"permission_handler","dependencies":[]}],"date_created":"2020-06-18 15:48:06.962625","version":"1.17.3"}
@@ -126,12 +134,11 @@ class InAppWebViewInitialData {
///The URL to use as the history entry. The default value is `about:blank`. If non-null, this must be a valid URL. This parameter is used only on Android.
StringhistoryUrl;
InAppWebViewInitialData(
{@requiredthis.data,
this.mimeType="text/html",
this.encoding="utf8",
this.baseUrl="about:blank",
this.historyUrl="about:blank"});
InAppWebViewInitialData({@requiredthis.data,
this.mimeType="text/html",
this.encoding="utf8",
this.baseUrl="about:blank",
this.historyUrl="about:blank"});
Map<String,String>toMap(){
return{
...
...
@@ -189,13 +196,12 @@ class WebResourceRequest {
///**NOTE**: Available on Android 21+. For Android < 21 it will be always `false`.
boolisRedirect;
WebResourceRequest(
{@requiredthis.url,
this.headers,
this.method,
this.hasGesture,
this.isForMainFrame,
this.isRedirect});
WebResourceRequest({@requiredthis.url,
this.headers,
this.method,
this.hasGesture,
this.isForMainFrame,
this.isRedirect});
Map<String,dynamic>toMap(){
return{
...
...
@@ -249,13 +255,12 @@ class WebResourceResponse {
///**NOTE**: Available on Android 21+. For Android < 21 it won't be used.
StringreasonPhrase;
WebResourceResponse(
{this.contentType="",
this.contentEncoding="utf-8",
this.data=null,
this.headers,
this.statusCode,
this.reasonPhrase});
WebResourceResponse({this.contentType="",
this.contentEncoding="utf-8",
this.data,
this.headers,
this.statusCode,
this.reasonPhrase});
Map<String,dynamic>toMap(){
return{
...
...
@@ -289,10 +294,9 @@ class CustomSchemeResponse {
///Content-Enconding of the data, such as `utf-8`.
StringcontentEnconding;
CustomSchemeResponse(
{@requiredthis.data,
@requiredthis.contentType,
this.contentEnconding='utf-8'});
CustomSchemeResponse({@requiredthis.data,
@requiredthis.contentType,
this.contentEnconding='utf-8'});
Map<String,dynamic>toMap(){
return{
...
...
@@ -459,11 +463,10 @@ class JsAlertResponse {
///Action used to confirm that the user hit confirm button.
JsAlertResponseActionaction;
JsAlertResponse(
{this.message="",
this.handledByClient=false,
this.confirmButtonTitle="",
this.action=JsAlertResponseAction.CONFIRM});
JsAlertResponse({this.message="",
this.handledByClient=false,
this.confirmButtonTitle="",
this.action=JsAlertResponseAction.CONFIRM});
Map<String,dynamic>toMap(){
return{
...
...
@@ -518,12 +521,11 @@ class JsConfirmResponse {
///Action used to confirm that the user hit confirm or cancel button.
JsConfirmResponseActionaction;
JsConfirmResponse(
{this.message="",
this.handledByClient=false,
this.confirmButtonTitle="",
this.cancelButtonTitle="",
this.action=JsConfirmResponseAction.CANCEL});
JsConfirmResponse({this.message="",
this.handledByClient=false,
this.confirmButtonTitle="",
this.cancelButtonTitle="",
this.action=JsConfirmResponseAction.CANCEL});
Map<String,dynamic>toMap(){
return{
...
...
@@ -585,14 +587,13 @@ class JsPromptResponse {
///Action used to confirm that the user hit confirm or cancel button.
@@ -1288,12 +1325,12 @@ class AndroidMixedContentMode {
///In this mode, the WebView will allow a secure origin to load content from any other origin, even if that origin is insecure.
///This is the least secure mode of operation for the WebView, and where possible apps should not set this mode.
staticconstMIXED_CONTENT_ALWAYS_ALLOW=
constAndroidMixedContentMode._internal(0);
constAndroidMixedContentMode._internal(0);
///In this mode, the WebView will not allow a secure origin to load content from an insecure origin.
///This is the preferred and most secure mode of operation for the WebView and apps are strongly advised to use this mode.
staticconstMIXED_CONTENT_NEVER_ALLOW=
constAndroidMixedContentMode._internal(1);
constAndroidMixedContentMode._internal(1);
///In this mode, the WebView will attempt to be compatible with the approach of a modern web browser with regard to mixed content.
///Some insecure content may be allowed to be loaded by a secure origin and other types of content will be blocked.
...
...
@@ -1301,7 +1338,7 @@ class AndroidMixedContentMode {
///This mode is intended to be used by apps that are not in control of the content that they render but desire to operate in a reasonably secure environment.
///For highest security, apps are recommended to use [AndroidMixedContentMode.MIXED_CONTENT_NEVER_ALLOW].
staticconstMIXED_CONTENT_COMPATIBILITY_MODE=
constAndroidMixedContentMode._internal(2);
constAndroidMixedContentMode._internal(2);
booloperator==(value)=>value==_value;
...
...
@@ -1315,9 +1352,14 @@ class IOSWKSelectionGranularity {
///All of the above data types are turned into links when detected. Choosing this value will automatically include any new detection type that is added.
///The renderer associated with this WebView is bound with Android `Context#BIND_IMPORTANT`.
staticconstRENDERER_PRIORITY_IMPORTANT=
constRendererPriority._internal(2);
constRendererPriority._internal(2);
booloperator==(value)=>value==_value;
...
...
@@ -3150,9 +3290,8 @@ class RendererPriorityPolicy {
///If true, this flag specifies that when this WebView is not visible, it will be treated as if it had requested a priority of [RendererPriority.RENDERER_PRIORITY_WAIVED].