This commit is contained in:
parent
0c6a02fff8
commit
17d8aa1167
|
@ -1,3 +1,9 @@
|
||||||
|
## 3.3.0+3
|
||||||
|
|
||||||
|
- Updated Android build.gradle version and some androidx properties
|
||||||
|
- Fixed `Multiple sessions` [#371](https://github.com/pichillilorenzo/flutter_inappwebview/issues/371)
|
||||||
|
- Fixed `incognito mode is broken swift` [#320](https://github.com/pichillilorenzo/flutter_inappwebview/issues/320)
|
||||||
|
|
||||||
## 3.3.0
|
## 3.3.0
|
||||||
|
|
||||||
- Updated API docs
|
- Updated API docs
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/flutter_inappbrowser.iml" filepath="$PROJECT_DIR$/flutter_inappbrowser.iml" />
|
<module fileurl="file://$PROJECT_DIR$/flutter_inappwebview.iml" filepath="$PROJECT_DIR$/flutter_inappwebview.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -8,7 +8,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
classpath 'com.android.tools.build:gradle:3.6.3'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,27 +51,3 @@ android {
|
||||||
implementation 'com.squareup.okhttp3:mockwebserver:3.11.0'
|
implementation 'com.squareup.okhttp3:mockwebserver:3.11.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate {
|
|
||||||
def containsEmbeddingDependencies = false
|
|
||||||
for (def configuration : configurations.all) {
|
|
||||||
for (def dependency : configuration.dependencies) {
|
|
||||||
if (dependency.group == 'io.flutter' &&
|
|
||||||
dependency.name.startsWith('flutter_embedding') &&
|
|
||||||
dependency.isTransitive())
|
|
||||||
{
|
|
||||||
containsEmbeddingDependencies = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!containsEmbeddingDependencies) {
|
|
||||||
android {
|
|
||||||
dependencies {
|
|
||||||
def lifecycle_version = "1.1.1"
|
|
||||||
compileOnly "android.arch.lifecycle:common-java8:$lifecycle_version"
|
|
||||||
compileOnly "android.arch.lifecycle:runtime:$lifecycle_version"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
org.gradle.jvmargs=-Xmx1536M
|
||||||
|
android.useAndroidX=true
|
||||||
|
android.enableJetifier=true
|
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||||
|
|
|
@ -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":[]},{"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_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.0.0+hotfix.6/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"e2e","dependencies":[]},{"name":"flutter_inappwebview","dependencies":[]},{"name":"permission_handler","dependencies":[]}],"date_created":"2020-05-30 23:08:18.010942","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_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-03 01:35:21.255449","version":"1.17.1"}
|
|
@ -75,15 +75,15 @@
|
||||||
android:resource="@xml/provider_paths" />
|
android:resource="@xml/provider_paths" />
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
<!-- <provider-->
|
<provider
|
||||||
<!-- android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"-->
|
android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
|
||||||
<!-- android:authorities="${applicationId}.flutter_downloader.provider"-->
|
android:authorities="${applicationId}.flutter_downloader.provider"
|
||||||
<!-- android:exported="false"-->
|
android:exported="false"
|
||||||
<!-- android:grantUriPermissions="true">-->
|
android:grantUriPermissions="true">
|
||||||
<!-- <meta-data-->
|
<meta-data
|
||||||
<!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
<!-- android:resource="@xml/provider_paths"/>-->
|
android:resource="@xml/provider_paths"/>
|
||||||
<!-- </provider>-->
|
</provider>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -5,7 +5,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
classpath 'com.android.tools.build:gradle:3.6.3'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#Fri Oct 05 14:08:48 CEST 2018
|
#Mon Jun 01 20:06:49 CEST 2020
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<!-- <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> -->
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
<title>Flutter InAppWebView</title>
|
<title>Flutter InAppWebView</title>
|
||||||
<link rel="stylesheet" href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css">
|
||||||
|
@ -24,6 +24,7 @@
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main role="main" class="inner cover">
|
<main role="main" class="inner cover">
|
||||||
|
<input type="text">
|
||||||
<h1 class="cover-heading">Inline WebView</h1>
|
<h1 class="cover-heading">Inline WebView</h1>
|
||||||
<img src="images/flutter-logo.svg" alt="flutter logo">
|
<img src="images/flutter-logo.svg" alt="flutter logo">
|
||||||
<a href="index.html"><img src="images/flutter-logo.svg" alt="flutter logo"></a>
|
<a href="index.html"><img src="images/flutter-logo.svg" alt="flutter logo"></a>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# This is a generated file; do not edit or check into version control.
|
||||||
|
export "FLUTTER_ROOT=/Users/lorenzopichilli/flutter"
|
||||||
|
export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example"
|
||||||
|
export "FLUTTER_TARGET=lib/main.dart"
|
||||||
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
|
export "SYMROOT=${SOURCE_ROOT}/../build/ios"
|
||||||
|
export "OTHER_LDFLAGS=$(inherited) -framework Flutter"
|
||||||
|
export "FLUTTER_FRAMEWORK_DIR=/Users/lorenzopichilli/flutter/bin/cache/artifacts/engine/ios"
|
||||||
|
export "FLUTTER_BUILD_NAME=1.0.0"
|
||||||
|
export "FLUTTER_BUILD_NUMBER=1"
|
|
@ -256,13 +256,17 @@
|
||||||
"${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}/e2e/e2e.framework",
|
"${BUILT_PRODUCTS_DIR}/e2e/e2e.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}/e2e.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/e2e.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;
|
||||||
|
|
|
@ -1,69 +1,21 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||||
import 'package:flutter_inappwebview_example/chrome_safari_browser_example.screen.dart';
|
|
||||||
import 'package:flutter_inappwebview_example/headless_in_app_webview.screen.dart';
|
|
||||||
import 'package:flutter_inappwebview_example/in_app_webiew_example.screen.dart';
|
|
||||||
import 'package:flutter_inappwebview_example/in_app_browser_example.screen.dart';
|
|
||||||
// import 'package:permission_handler/permission_handler.dart';
|
|
||||||
|
|
||||||
// InAppLocalhostServer localhostServer = new InAppLocalhostServer();
|
|
||||||
|
|
||||||
Future main() async {
|
Future main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
// await Permission.camera.request();
|
|
||||||
// await Permission.storage.request();
|
|
||||||
// await localhostServer.start();
|
|
||||||
runApp(MyApp());
|
runApp(MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
Drawer myDrawer({@required BuildContext context}) {
|
|
||||||
return Drawer(
|
|
||||||
child: ListView(
|
|
||||||
padding: EdgeInsets.zero,
|
|
||||||
children: <Widget>[
|
|
||||||
DrawerHeader(
|
|
||||||
child: Text('flutter_inappbrowser example'),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.blue,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text('InAppBrowser'),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.pushReplacementNamed(context, '/InAppBrowser');
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text('ChromeSafariBrowser'),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.pushReplacementNamed(context, '/ChromeSafariBrowser');
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text('InAppWebView'),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.pushReplacementNamed(context, '/');
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text('HeadlessInAppWebView'),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.pushReplacementNamed(context, '/HeadlessInAppWebView');
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
class MyApp extends StatefulWidget {
|
class MyApp extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
_MyAppState createState() => new _MyAppState();
|
_MyAppState createState() => new _MyAppState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MyAppState extends State<MyApp> {
|
class _MyAppState extends State<MyApp> {
|
||||||
|
InAppWebViewController webView;
|
||||||
|
CookieManager _cookieManager = CookieManager.instance();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
@ -78,13 +30,46 @@ class _MyAppState extends State<MyApp> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
initialRoute: '/',
|
home: Scaffold(
|
||||||
routes: {
|
appBar: AppBar(
|
||||||
'/': (context) => InAppWebViewExampleScreen(),
|
title: const Text('InAppWebView Example'),
|
||||||
'/InAppBrowser': (context) => InAppBrowserExampleScreen(),
|
),
|
||||||
'/ChromeSafariBrowser': (context) => ChromeSafariBrowserExampleScreen(),
|
body: Container(
|
||||||
'/HeadlessInAppWebView': (context) => HeadlessInAppWebViewExampleScreen(),
|
child: Column(children: <Widget>[
|
||||||
}
|
Expanded(
|
||||||
|
child: InAppWebView(
|
||||||
|
initialUrl: "https://github.com/",
|
||||||
|
initialOptions: InAppWebViewGroupOptions(
|
||||||
|
crossPlatform: InAppWebViewOptions(
|
||||||
|
debuggingEnabled: true
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onWebViewCreated: (InAppWebViewController controller) {
|
||||||
|
webView = controller;
|
||||||
|
},
|
||||||
|
onLoadStart: (InAppWebViewController controller, String url) {},
|
||||||
|
onLoadStop: (InAppWebViewController controller, String url) async {
|
||||||
|
|
||||||
|
},
|
||||||
|
)),
|
||||||
|
Expanded(
|
||||||
|
child: InAppWebView(
|
||||||
|
initialUrl: "https://github.com/",
|
||||||
|
initialOptions: InAppWebViewGroupOptions(
|
||||||
|
crossPlatform: InAppWebViewOptions(
|
||||||
|
debuggingEnabled: true
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onWebViewCreated: (InAppWebViewController controller) {
|
||||||
|
webView = controller;
|
||||||
|
},
|
||||||
|
onLoadStart: (InAppWebViewController controller, String url) {},
|
||||||
|
onLoadStop: (InAppWebViewController controller, String url) async {
|
||||||
|
|
||||||
|
},
|
||||||
|
))
|
||||||
|
])),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,9 +20,10 @@ dependencies:
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
cupertino_icons: ^0.1.2
|
cupertino_icons: ^0.1.2
|
||||||
# flutter_downloader: ^1.3.2
|
flutter_downloader: ^1.4.4
|
||||||
# path_provider: ^1.4.0
|
path_provider: ^1.6.9
|
||||||
permission_handler: ^5.0.0+hotfix.6
|
permission_handler: ^5.0.0+hotfix.6
|
||||||
|
# webview_flutter: ^0.3.22+1
|
||||||
# connectivity: ^0.4.5+6
|
# connectivity: ^0.4.5+6
|
||||||
flutter_inappwebview:
|
flutter_inappwebview:
|
||||||
path: ../
|
path: ../
|
||||||
|
|
|
@ -1037,28 +1037,7 @@ public class InAppWebView: WKWebView, UIScrollViewDelegate, WKUIDelegate, WKNavi
|
||||||
configuration.userContentController.addUserScript(interceptFetchRequestsJSScript)
|
configuration.userContentController.addUserScript(interceptFetchRequestsJSScript)
|
||||||
}
|
}
|
||||||
|
|
||||||
if #available(iOS 9.0, *) {
|
|
||||||
if ((options?.incognito)!) {
|
|
||||||
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
|
|
||||||
} else if ((options?.cacheEnabled)!) {
|
|
||||||
configuration.websiteDataStore = WKWebsiteDataStore.default()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if #available(iOS 11.0, *) {
|
if #available(iOS 11.0, *) {
|
||||||
if((options?.sharedCookiesEnabled)!) {
|
|
||||||
// More info to sending cookies with WKWebView
|
|
||||||
// https://stackoverflow.com/questions/26573137/can-i-set-the-cookies-to-be-used-by-a-wkwebview/26577303#26577303
|
|
||||||
// Set Cookies in iOS 11 and above, initialize websiteDataStore before setting cookies
|
|
||||||
// See also https://forums.developer.apple.com/thread/97194
|
|
||||||
// check if websiteDataStore has not been initialized before
|
|
||||||
if(!(options?.incognito)! && !(options?.cacheEnabled)!) {
|
|
||||||
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
|
|
||||||
}
|
|
||||||
for cookie in HTTPCookieStorage.shared.cookies ?? [] {
|
|
||||||
configuration.websiteDataStore.httpCookieStore.setCookie(cookie, completionHandler: nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
accessibilityIgnoresInvertColors = (options?.accessibilityIgnoresInvertColors)!
|
accessibilityIgnoresInvertColors = (options?.accessibilityIgnoresInvertColors)!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1229,6 +1208,30 @@ public class InAppWebView: WKWebView, UIScrollViewDelegate, WKUIDelegate, WKNavi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if #available(iOS 9.0, *) {
|
||||||
|
if ((options?.incognito)!) {
|
||||||
|
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
|
||||||
|
} else if ((options?.cacheEnabled)!) {
|
||||||
|
configuration.websiteDataStore = WKWebsiteDataStore.default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if #available(iOS 11.0, *) {
|
||||||
|
if((options?.sharedCookiesEnabled)!) {
|
||||||
|
// More info to sending cookies with WKWebView
|
||||||
|
// https://stackoverflow.com/questions/26573137/can-i-set-the-cookies-to-be-used-by-a-wkwebview/26577303#26577303
|
||||||
|
// Set Cookies in iOS 11 and above, initialize websiteDataStore before setting cookies
|
||||||
|
// See also https://forums.developer.apple.com/thread/97194
|
||||||
|
// check if websiteDataStore has not been initialized before
|
||||||
|
if(!(options?.incognito)! && !(options?.cacheEnabled)!) {
|
||||||
|
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
|
||||||
|
}
|
||||||
|
for cookie in HTTPCookieStorage.shared.cookies ?? [] {
|
||||||
|
configuration.websiteDataStore.httpCookieStore.setCookie(cookie, completionHandler: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return configuration
|
return configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#
|
#
|
||||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
|
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
|
||||||
|
# Run `pod lib lint flutterplugintest.podspec' to validate before publishing.
|
||||||
#
|
#
|
||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = 'flutter_inappwebview'
|
s.name = 'flutter_inappwebview'
|
||||||
|
@ -16,7 +17,9 @@ A new Flutter plugin.
|
||||||
s.resources = 'Storyboards/**/*.storyboard'
|
s.resources = 'Storyboards/**/*.storyboard'
|
||||||
s.public_header_files = 'Classes/**/*.h'
|
s.public_header_files = 'Classes/**/*.h'
|
||||||
s.dependency 'Flutter'
|
s.dependency 'Flutter'
|
||||||
|
s.platform = :ios, '8.0'
|
||||||
|
|
||||||
|
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
|
||||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }
|
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }
|
||||||
s.swift_version = '5.0'
|
s.swift_version = '5.0'
|
||||||
end
|
end
|
||||||
|
|
|
@ -1597,7 +1597,7 @@ class AndroidInAppWebViewController {
|
||||||
return await _controller._channel.invokeMethod('pageUp', args);
|
return await _controller._channel.invokeMethod('pageUp', args);
|
||||||
}
|
}
|
||||||
|
|
||||||
///Saves the current view as a web archive.
|
///Saves the current WebView as a web archive.
|
||||||
///Returns the filename under which the file was saved, or `null` if saving the file failed.
|
///Returns the filename under which the file was saved, or `null` if saving the file failed.
|
||||||
///
|
///
|
||||||
///[basename] the filename where the archive should be placed. This value cannot be `null`.
|
///[basename] the filename where the archive should be placed. This value cannot be `null`.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: flutter_inappwebview
|
name: flutter_inappwebview
|
||||||
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.
|
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+3
|
||||||
homepage: https://github.com/pichillilorenzo/flutter_inappwebview
|
homepage: https://github.com/pichillilorenzo/flutter_inappwebview
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
|
Loading…
Reference in New Issue