updated README.md, fix #358
This commit is contained in:
parent
a9f9d33834
commit
428ecf7a31
|
@ -6,6 +6,7 @@
|
||||||
- Added `onEnterFullscreen`, `onExitFullscreen` webview events
|
- Added `onEnterFullscreen`, `onExitFullscreen` webview events
|
||||||
- Fixed `Print preview is not working? java.lang.IllegalStateException: Can print only from an activity` [#128](https://github.com/pichillilorenzo/flutter_inappwebview/issues/128)
|
- Fixed `Print preview is not working? java.lang.IllegalStateException: Can print only from an activity` [#128](https://github.com/pichillilorenzo/flutter_inappwebview/issues/128)
|
||||||
- Fixed `onJsAlert`, `onJsConfirm`, `onJsPrompt` for `InAppBrowser` on Android
|
- Fixed `onJsAlert`, `onJsConfirm`, `onJsPrompt` for `InAppBrowser` on Android
|
||||||
|
- Fixed `InAppBrowser.openWithSystemBrowser crash on iOS` [#358](https://github.com/pichillilorenzo/flutter_inappwebview/issues/358)
|
||||||
|
|
||||||
## 3.2.0
|
## 3.2.0
|
||||||
|
|
||||||
|
|
30
README.md
30
README.md
|
@ -7,7 +7,7 @@
|
||||||
[![Donate to this project using Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.me/LorenzoPichilli)
|
[![Donate to this project using Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.me/LorenzoPichilli)
|
||||||
[![Donate to this project using Patreon](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://www.patreon.com/bePatron?u=9269604)
|
[![Donate to this project using Patreon](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://www.patreon.com/bePatron?u=9269604)
|
||||||
|
|
||||||
A Flutter plugin that allows you to add an inline webview or open an in-app browser window.
|
A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
|
@ -16,13 +16,32 @@ A Flutter plugin that allows you to add an inline webview or open an in-app brow
|
||||||
- Android: `minSdkVersion 17` and add support for `androidx` (see [AndroidX Migration](https://flutter.dev/docs/development/androidx-migration) to migrate an existing app)
|
- Android: `minSdkVersion 17` and add support for `androidx` (see [AndroidX Migration](https://flutter.dev/docs/development/androidx-migration) to migrate an existing app)
|
||||||
- iOS: `--ios-language swift`, Xcode version `>= 11`
|
- iOS: `--ios-language swift`, Xcode version `>= 11`
|
||||||
|
|
||||||
|
### IMPORTANT Note for Android and iOS
|
||||||
|
|
||||||
|
If you're running an application and need to access the binary messenger before `runApp()` has been called
|
||||||
|
(for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
|
||||||
|
|
||||||
|
An example:
|
||||||
|
```dart
|
||||||
|
void main() {
|
||||||
|
// it should be the first line in main method
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
// rest of your app code
|
||||||
|
runApp(MyApp());
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### IMPORTANT Note for Android
|
### IMPORTANT Note for Android
|
||||||
|
|
||||||
If you are starting a new fresh app, you need to create the Flutter App with `flutter create --androidx -i swift` to add support for `androidx`, otherwise it won't work (see [AndroidX Migration](https://flutter.dev/docs/development/androidx-migration) to migrate an existing app).
|
If you are starting a new fresh app, you need to create the Flutter App with `flutter create --androidx -i swift`
|
||||||
|
to add support for `androidx`, otherwise it won't work (see [AndroidX Migration](https://flutter.dev/docs/development/androidx-migration) to migrate an existing app).
|
||||||
|
|
||||||
During the build, if Android fails with `Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library`, it means that you need to update the `minSdkVersion` of your `android/app/build.gradle` file to at least `17`.
|
During the build, if Android fails with `Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library`,
|
||||||
|
it means that you need to update the `minSdkVersion` of your `android/app/build.gradle` file to at least `17`.
|
||||||
|
|
||||||
Also, you need to add `<uses-permission android:name="android.permission.INTERNET"/>` in the `android/app/src/main/AndroidManifest.xml` file in order to give minimum permission to perform network operations in your application.
|
Also, you need to add `<uses-permission android:name="android.permission.INTERNET"/>` in the `android/app/src/main/AndroidManifest.xml`
|
||||||
|
file in order to give minimum permission to perform network operations in your application.
|
||||||
|
|
||||||
If you `flutter create`d your project prior to version `1.12`, you need to make sure to update your project in order to use the new **Java Embedding API**!
|
If you `flutter create`d your project prior to version `1.12`, you need to make sure to update your project in order to use the new **Java Embedding API**!
|
||||||
Take a look at the official Flutter wiki: [Upgrading pre 1.12 Android projects](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects).
|
Take a look at the official Flutter wiki: [Upgrading pre 1.12 Android projects](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects).
|
||||||
|
@ -42,7 +61,8 @@ Also, note that to use the `InAppWebView` widget on Android, it requires **Andro
|
||||||
|
|
||||||
### IMPORTANT Note for iOS
|
### IMPORTANT Note for iOS
|
||||||
|
|
||||||
If you are starting a new fresh app, you need to create the Flutter App with `flutter create --androidx -i swift` (see [flutter/flutter#13422 (comment)](https://github.com/flutter/flutter/issues/13422#issuecomment-392133780)), otherwise, you will get this message:
|
If you are starting a new fresh app, you need to create the Flutter App with `flutter create --androidx -i swift`
|
||||||
|
(see [flutter/flutter#13422 (comment)](https://github.com/flutter/flutter/issues/13422#issuecomment-392133780)), otherwise, you will get this message:
|
||||||
```
|
```
|
||||||
=== BUILD TARGET flutter_inappwebview OF PROJECT Pods WITH CONFIGURATION Debug ===
|
=== BUILD TARGET flutter_inappwebview OF PROJECT Pods WITH CONFIGURATION Debug ===
|
||||||
The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. Supported values are: 3.0, 4.0, 4.2, 5.0. This setting can be set in the build settings editor.
|
The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. Supported values are: 3.0, 4.0, 4.2, 5.0. This setting can be set in the build settings editor.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"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_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]}],"android":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"e2e","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]}],"date_created":"2020-05-23 00:16:16.872956","version":"1.17.1"}
|
{"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_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]}],"android":[{"name":"e2e","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/e2e-0.2.4+4/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"e2e","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]}],"date_created":"2020-05-23 12:13:45.779062","version":"1.17.1"}
|
|
@ -255,20 +255,14 @@
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
|
||||||
"${PODS_ROOT}/../Flutter/Flutter.framework",
|
"${PODS_ROOT}/../Flutter/Flutter.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/Reachability/Reachability.framework",
|
"${BUILT_PRODUCTS_DIR}/e2e/e2e.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/connectivity/connectivity.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/flutter_downloader/flutter_downloader.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/flutter_inappwebview/flutter_inappwebview.framework",
|
"${BUILT_PRODUCTS_DIR}/flutter_inappwebview/flutter_inappwebview.framework",
|
||||||
"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
|
|
||||||
);
|
);
|
||||||
name = "[CP] Embed Pods Frameworks";
|
name = "[CP] Embed Pods Frameworks";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/e2e.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_downloader.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview.framework",
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
|
|
|
@ -37,7 +37,8 @@ class MyInAppBrowser extends InAppBrowser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<ShouldOverrideUrlLoadingAction> shouldOverrideUrlLoading(ShouldOverrideUrlLoadingRequest shouldOverrideUrlLoadingRequest) async {
|
Future<ShouldOverrideUrlLoadingAction> shouldOverrideUrlLoading(
|
||||||
|
ShouldOverrideUrlLoadingRequest shouldOverrideUrlLoadingRequest) async {
|
||||||
print("\n\nOverride ${shouldOverrideUrlLoadingRequest.url}\n\n");
|
print("\n\nOverride ${shouldOverrideUrlLoadingRequest.url}\n\n");
|
||||||
return ShouldOverrideUrlLoadingAction.ALLOW;
|
return ShouldOverrideUrlLoadingAction.ALLOW;
|
||||||
}
|
}
|
||||||
|
@ -85,19 +86,29 @@ class _InAppBrowserExampleScreenState extends State<InAppBrowserExampleScreen> {
|
||||||
)),
|
)),
|
||||||
drawer: myDrawer(context: context),
|
drawer: myDrawer(context: context),
|
||||||
body: Center(
|
body: Center(
|
||||||
child: RaisedButton(
|
child: Column(
|
||||||
onPressed: () async {
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
await widget.browser.openFile(
|
children: <Widget>[
|
||||||
assetFilePath: "assets/index.html",
|
RaisedButton(
|
||||||
options: InAppBrowserClassOptions(
|
onPressed: () async {
|
||||||
inAppWebViewGroupOptions: InAppWebViewGroupOptions(
|
await widget.browser.openFile(
|
||||||
crossPlatform: InAppWebViewOptions(
|
assetFilePath: "assets/index.html",
|
||||||
debuggingEnabled: true,
|
options: InAppBrowserClassOptions(
|
||||||
useShouldOverrideUrlLoading: true,
|
inAppWebViewGroupOptions: InAppWebViewGroupOptions(
|
||||||
useOnLoadResource: true,
|
crossPlatform: InAppWebViewOptions(
|
||||||
))));
|
debuggingEnabled: true,
|
||||||
},
|
useShouldOverrideUrlLoading: true,
|
||||||
child: Text("Open Webview Browser")),
|
useOnLoadResource: true,
|
||||||
));
|
))));
|
||||||
|
},
|
||||||
|
child: Text("Open Webview Browser")),
|
||||||
|
Container(height: 40),
|
||||||
|
RaisedButton(
|
||||||
|
onPressed: () async {
|
||||||
|
await InAppBrowser.openWithSystemBrowser(
|
||||||
|
url: "https://flutter.dev/");
|
||||||
|
},
|
||||||
|
child: Text("Open System Browser")),
|
||||||
|
])));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,10 +34,10 @@ public class InAppBrowserManager: NSObject, FlutterPlugin {
|
||||||
|
|
||||||
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
let arguments = call.arguments as? NSDictionary
|
let arguments = call.arguments as? NSDictionary
|
||||||
let uuid: String = arguments!["uuid"] as! String
|
|
||||||
|
|
||||||
switch call.method {
|
switch call.method {
|
||||||
case "openUrl":
|
case "openUrl":
|
||||||
|
let uuid = arguments!["uuid"] as! String
|
||||||
let url = arguments!["url"] as! String
|
let url = arguments!["url"] as! String
|
||||||
let options = arguments!["options"] as! [String: Any?]
|
let options = arguments!["options"] as! [String: Any?]
|
||||||
let headers = arguments!["headers"] as! [String: String]
|
let headers = arguments!["headers"] as! [String: String]
|
||||||
|
@ -46,6 +46,7 @@ public class InAppBrowserManager: NSObject, FlutterPlugin {
|
||||||
result(true)
|
result(true)
|
||||||
break
|
break
|
||||||
case "openFile":
|
case "openFile":
|
||||||
|
let uuid = arguments!["uuid"] as! String
|
||||||
var url = arguments!["url"] as! String
|
var url = arguments!["url"] as! String
|
||||||
let key = InAppBrowserManager.registrar!.lookupKey(forAsset: url)
|
let key = InAppBrowserManager.registrar!.lookupKey(forAsset: url)
|
||||||
let assetURL = Bundle.main.url(forResource: key, withExtension: nil)
|
let assetURL = Bundle.main.url(forResource: key, withExtension: nil)
|
||||||
|
@ -62,6 +63,7 @@ public class InAppBrowserManager: NSObject, FlutterPlugin {
|
||||||
result(true)
|
result(true)
|
||||||
break
|
break
|
||||||
case "openData":
|
case "openData":
|
||||||
|
let uuid = arguments!["uuid"] as! String
|
||||||
let options = arguments!["options"] as! [String: Any?]
|
let options = arguments!["options"] as! [String: Any?]
|
||||||
let data = arguments!["data"] as! String
|
let data = arguments!["data"] as! String
|
||||||
let mimeType = arguments!["mimeType"] as! String
|
let mimeType = arguments!["mimeType"] as! String
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: flutter_inappwebview
|
name: flutter_inappwebview
|
||||||
description: A Flutter plugin that allows you to add an inline webview or open an in-app browser window.
|
description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
|
||||||
version: 3.3.0
|
version: 3.3.0
|
||||||
homepage: https://github.com/pichillilorenzo/flutter_inappwebview
|
homepage: https://github.com/pichillilorenzo/flutter_inappwebview
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue