updated docs, Added allowGoBackWithBackButton and shouldCloseOnBackButtonPressed Android-specific InAppBrowser options
This commit is contained in:
parent
a3e4da3e61
commit
b2d0f3a61d
|
@ -1,6 +1,7 @@
|
|||
## 5.2.1
|
||||
|
||||
- Added `isRunning` method to the `HeadlessInAppWebView` class
|
||||
- Added `allowGoBackWithBackButton` and `shouldCloseOnBackButtonPressed` Android-specific InAppBrowser options
|
||||
- Fixed iOS `WebMessageListener` javascript implementation not calling event listeners when `onmessage` is set
|
||||
- Fixed `onCreateContextMenu` event on Android where `hitTestResult` has always `null` values
|
||||
- Fixed "java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SearchView.setQuery(java.lang.CharSequence, boolean)' on a null object reference" [#742](https://github.com/pichillilorenzo/flutter_inappwebview/issues/742)
|
||||
|
|
|
@ -247,13 +247,22 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow
|
|||
}
|
||||
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
if (options.shouldCloseOnBackButtonPressed) {
|
||||
close(null);
|
||||
return true;
|
||||
}
|
||||
if (options.allowGoBackWithBackButton) {
|
||||
if (canGoBack())
|
||||
goBack();
|
||||
else if (options.closeOnCannotGoBack)
|
||||
close(null);
|
||||
return true;
|
||||
}
|
||||
if (!options.shouldCloseOnBackButtonPressed) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ public class InAppBrowserOptions implements Options<InAppBrowserActivity> {
|
|||
|
||||
public Boolean hideTitleBar = false;
|
||||
public Boolean closeOnCannotGoBack = true;
|
||||
public Boolean allowGoBackWithBackButton = true;
|
||||
public Boolean shouldCloseOnBackButtonPressed = false;
|
||||
|
||||
@Override
|
||||
public InAppBrowserOptions parse(Map<String, Object> options) {
|
||||
|
@ -58,6 +60,12 @@ public class InAppBrowserOptions implements Options<InAppBrowserActivity> {
|
|||
case "hideProgressBar":
|
||||
hideProgressBar = (Boolean) value;
|
||||
break;
|
||||
case "allowGoBackWithBackButton":
|
||||
allowGoBackWithBackButton = (Boolean) value;
|
||||
break;
|
||||
case "shouldCloseOnBackButtonPressed":
|
||||
shouldCloseOnBackButtonPressed = (Boolean) value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,6 +83,8 @@ public class InAppBrowserOptions implements Options<InAppBrowserActivity> {
|
|||
options.put("hideTitleBar", hideTitleBar);
|
||||
options.put("closeOnCannotGoBack", closeOnCannotGoBack);
|
||||
options.put("hideProgressBar", hideProgressBar);
|
||||
options.put("allowGoBackWithBackButton", allowGoBackWithBackButton);
|
||||
options.put("shouldCloseOnBackButtonPressed", shouldCloseOnBackButtonPressed);
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_downloader","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"integration_test","path":"/Users/lorenzopichilli/fvm/versions/2.1.0-10.0.pre/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.0-nullsafety/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"android":[{"name":"flutter_downloader","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"integration_test","path":"/Users/lorenzopichilli/fvm/versions/2.1.0-10.0.pre/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.0-nullsafety/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.5-nullsafety/","dependencies":[]},{"name":"url_launcher_macos","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.2.0-nullsafety/","dependencies":[]},{"name":"url_launcher_linux","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.1.0-nullsafety.3/","dependencies":[]},{"name":"url_launcher_windows","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/","dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]},{"name":"integration_test","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-03-23 16:33:10.809487","version":"2.1.0-10.0.pre"}
|
||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_downloader","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"integration_test","path":"/Users/lorenzopichilli/fvm/versions/2.1.0-10.0.pre/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.0-nullsafety/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"android":[{"name":"flutter_downloader","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"integration_test","path":"/Users/lorenzopichilli/fvm/versions/2.1.0-10.0.pre/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.0-nullsafety/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.5-nullsafety/","dependencies":[]},{"name":"url_launcher_macos","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.2.0-nullsafety/","dependencies":[]},{"name":"url_launcher_linux","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.1.0-nullsafety.3/","dependencies":[]},{"name":"url_launcher_windows","path":"/Users/lorenzopichilli/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/","dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]},{"name":"integration_test","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-03-23 21:45:58.621500","version":"2.1.0-10.0.pre"}
|
|
@ -1,13 +1,13 @@
|
|||
#!/bin/sh
|
||||
# This is a generated file; do not edit or check into version control.
|
||||
export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.1.0-10.0.pre"
|
||||
export "FLUTTER_ROOT=/Users/lorenzopichilli/flutter"
|
||||
export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example"
|
||||
export "FLUTTER_TARGET=integration_test/webview_flutter_test.dart"
|
||||
export "FLUTTER_TARGET=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example/lib/main.dart"
|
||||
export "FLUTTER_BUILD_DIR=build"
|
||||
export "SYMROOT=${SOURCE_ROOT}/../build/ios"
|
||||
export "FLUTTER_BUILD_NAME=1.0.0"
|
||||
export "FLUTTER_BUILD_NUMBER=1"
|
||||
export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ=="
|
||||
export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz10cnVl,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ=="
|
||||
export "DART_OBFUSCATION=false"
|
||||
export "TRACK_WIDGET_CREATION=true"
|
||||
export "TREE_SHAKE_ICONS=false"
|
||||
|
|
|
@ -79,7 +79,7 @@ class ChromeSafariBrowser {
|
|||
}
|
||||
}
|
||||
|
||||
///Opens an [url] in a new [ChromeSafariBrowser] instance.
|
||||
///Opens the [ChromeSafariBrowser] instance with an [url].
|
||||
///
|
||||
///[url]: The [url] to load.
|
||||
///
|
||||
|
|
|
@ -11,13 +11,21 @@ class AndroidInAppBrowserOptions implements BrowserOptions, AndroidOptions {
|
|||
///Set the action bar's title.
|
||||
String? toolbarTopFixedTitle;
|
||||
|
||||
///Set to `false` to not close the InAppBrowser when the user click on the back button and the WebView cannot go back to the history. The default value is `true`.
|
||||
///Set to `false` to not close the InAppBrowser when the user click on the Android back button and the WebView cannot go back to the history. The default value is `true`.
|
||||
bool closeOnCannotGoBack;
|
||||
|
||||
///Set to `false` to block the InAppBrowser WebView going back when the user click on the Android back button. The default value is `true`.
|
||||
bool allowGoBackWithBackButton;
|
||||
|
||||
///Set to `true` to close the InAppBrowser when the user click on the Android back button. The default value is `false`.
|
||||
bool shouldCloseOnBackButtonPressed;
|
||||
|
||||
AndroidInAppBrowserOptions(
|
||||
{this.hideTitleBar = false,
|
||||
this.toolbarTopFixedTitle,
|
||||
this.closeOnCannotGoBack = true});
|
||||
this.closeOnCannotGoBack = true,
|
||||
this.allowGoBackWithBackButton = true,
|
||||
this.shouldCloseOnBackButtonPressed = false});
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toMap() {
|
||||
|
@ -25,6 +33,8 @@ class AndroidInAppBrowserOptions implements BrowserOptions, AndroidOptions {
|
|||
"hideTitleBar": hideTitleBar,
|
||||
"toolbarTopFixedTitle": toolbarTopFixedTitle,
|
||||
"closeOnCannotGoBack": closeOnCannotGoBack,
|
||||
"allowGoBackWithBackButton": allowGoBackWithBackButton,
|
||||
"shouldCloseOnBackButtonPressed": shouldCloseOnBackButtonPressed,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -33,6 +43,8 @@ class AndroidInAppBrowserOptions implements BrowserOptions, AndroidOptions {
|
|||
options.hideTitleBar = map["hideTitleBar"];
|
||||
options.toolbarTopFixedTitle = map["toolbarTopFixedTitle"];
|
||||
options.closeOnCannotGoBack = map["closeOnCannotGoBack"];
|
||||
options.allowGoBackWithBackButton = map["allowGoBackWithBackButton"];
|
||||
options.shouldCloseOnBackButtonPressed = map["shouldCloseOnBackButtonPressed"];
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ class InAppBrowser {
|
|||
}
|
||||
}
|
||||
|
||||
///Opens an [urlRequest] in a new [InAppBrowser] instance.
|
||||
///Opens the [InAppBrowser] instance with an [urlRequest].
|
||||
///
|
||||
///[urlRequest]: The [urlRequest] to load.
|
||||
///
|
||||
|
@ -119,7 +119,7 @@ class InAppBrowser {
|
|||
await _sharedChannel.invokeMethod('open', args);
|
||||
}
|
||||
|
||||
///Opens the given [assetFilePath] file in a new [InAppBrowser] instance.
|
||||
///Opens the [InAppBrowser] instance with the given [assetFilePath] file.
|
||||
///
|
||||
///[options]: Options for the [InAppBrowser].
|
||||
///
|
||||
|
@ -177,7 +177,7 @@ class InAppBrowser {
|
|||
await _sharedChannel.invokeMethod('open', args);
|
||||
}
|
||||
|
||||
///Opens a new [InAppBrowser] instance with [data] as a content, using [baseUrl] as the base URL for it.
|
||||
///Opens the [InAppBrowser] instance with [data] as a content, using [baseUrl] as the base URL for it.
|
||||
///
|
||||
///The [mimeType] parameter specifies the format of the data. The default value is `"text/html"`.
|
||||
///
|
||||
|
|
|
@ -15,7 +15,7 @@ class InAppLocalhostServer {
|
|||
this._port = port;
|
||||
}
|
||||
|
||||
///Starts a server on http://localhost:[port]/.
|
||||
///Starts the server on `http://localhost:[port]/`.
|
||||
///
|
||||
///**NOTE for iOS**: For the iOS Platform, you need to add the `NSAllowsLocalNetworking` key with `true` in the `Info.plist` file (See [ATS Configuration Basics](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35)):
|
||||
///```xml
|
||||
|
|
Loading…
Reference in New Issue