iosWebViewFix/example/lib/main.dart

124 lines
3.7 KiB
Dart
Raw Normal View History

import 'dart:async';
2020-06-02 23:48:27 +00:00
2022-04-21 21:14:51 +00:00
import 'package:flutter/foundation.dart';
2018-11-13 11:02:20 +00:00
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
2020-06-02 23:48:27 +00:00
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:path_provider/path_provider.dart';
// import 'package:permission_handler/permission_handler.dart';
2020-06-02 23:48:27 +00:00
// InAppLocalhostServer localhostServer = new InAppLocalhostServer();
2019-03-12 01:14:30 +00:00
2018-11-13 11:02:20 +00:00
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
// await Permission.camera.request();
// await Permission.microphone.request();
// await Permission.storage.request();
2022-05-01 02:03:17 +00:00
WebView.debugLogging = false;
2022-04-27 16:59:19 +00:00
2022-04-21 21:14:51 +00:00
if (defaultTargetPlatform == TargetPlatform.android) {
2022-04-20 17:20:31 +00:00
await InAppWebViewController.setWebContentsDebuggingEnabled(true);
2022-04-20 17:20:31 +00:00
var swAvailable = await WebViewFeature.isFeatureSupported(
WebViewFeature.SERVICE_WORKER_BASIC_USAGE);
var swInterceptAvailable = await WebViewFeature.isFeatureSupported(
WebViewFeature.SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST);
if (swAvailable && swInterceptAvailable) {
2022-04-20 17:20:31 +00:00
ServiceWorkerController serviceWorkerController =
ServiceWorkerController.instance();
await serviceWorkerController.setServiceWorkerClient(ServiceWorkerClient(
2021-02-04 21:06:04 +00:00
shouldInterceptRequest: (request) async {
print(request);
return null;
},
));
2021-02-04 21:06:04 +00:00
}
2022-05-02 01:37:02 +00:00
// var proxyAvailable = await WebViewFeature.isFeatureSupported(
// WebViewFeature.PROXY_OVERRIDE);
// if (proxyAvailable) {
// ProxyController proxyController = ProxyController.instance();
// await proxyController.clearProxyOverride();
// await proxyController.setProxyOverride(settings: ProxySettings(
// proxyRules: [ProxyRule(url: "https://192.168.1.102:4433")],
// ));
// }
}
2020-05-23 17:33:54 +00:00
runApp(MyApp());
2018-11-13 11:02:20 +00:00
}
Drawer myDrawer({required BuildContext context}) {
2020-06-02 23:48:27 +00:00
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');
},
),
],
),
);
}
2018-11-13 11:02:20 +00:00
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
2021-03-01 19:26:57 +00:00
return MaterialApp(initialRoute: '/', routes: {
'/': (context) => InAppWebViewExampleScreen(),
'/InAppBrowser': (context) => InAppBrowserExampleScreen(),
'/ChromeSafariBrowser': (context) => ChromeSafariBrowserExampleScreen(),
'/HeadlessInAppWebView': (context) => HeadlessInAppWebViewExampleScreen(),
});
2018-11-13 11:02:20 +00:00
}
2021-03-01 19:26:57 +00:00
}