webview_page_ohos.dart 6.06 KB

// import 'package:flutter/material.dart';
// import 'package:one_key/utils/event_bus.dart';
// import 'package:one_key/widgets/system_app_bar.dart';

// // import 'package:path_provider/path_provider.dart';
// import 'package:webview_flutter/webview_flutter.dart';
// // #docregion platform_imports
// // Import for Android features.
// import 'package:webview_flutter_android/webview_flutter_android.dart';
// // Import for iOS features.
// import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';


// /**
//  * 
//  * 帮助与反馈页面    功能暂时已经弃用
//  */

// class WebViewPage extends StatefulWidget {
//   @override
//   _WebViewPageState createState() => _WebViewPageState();
// }

// class _WebViewPageState extends State<WebViewPage> {
//   late WebViewController _controller = WebViewController();
// //  late final WebViewController _controller;
//   @override
//   void initState() {
//     super.initState();
//     // Enable hybrid composition.
//     // if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
//     // #docregion platform_features
//     late final PlatformWebViewControllerCreationParams params;
//     if (WebViewPlatform.instance is WebKitWebViewPlatform) {
//       params = WebKitWebViewControllerCreationParams(
//         allowsInlineMediaPlayback: true,
//         mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
//       );
//     } else {
//       params = const PlatformWebViewControllerCreationParams();
//     }

//     final WebViewController controller =
//         WebViewController.fromPlatformCreationParams(params);
//     // #enddocregion platform_features

//     controller
//       ..setJavaScriptMode(JavaScriptMode.unrestricted)
//       ..setBackgroundColor(const Color(0x00000000))
//       ..setNavigationDelegate(
//         NavigationDelegate(
//           onProgress: (int progress) {
//             debugPrint('WebView is loading (progress : $progress%)');
//           },
//           onPageStarted: (String url) {
//             debugPrint('Page started loading: $url');
//           },
//           onPageFinished: (String url) {
//             debugPrint('Page finished loading: $url');
//           },
//           onWebResourceError: (WebResourceError error) {
//             debugPrint('''
// Page resource error:
//   code: ${error.errorCode}
//   description: ${error.description}
//   errorType: ${error.errorType}
//   isForMainFrame: ${error.isForMainFrame}
//           ''');
//           },
//           onNavigationRequest: (NavigationRequest request) {
//             if (request.url.startsWith('https://www.youtube.com/')) {
//               debugPrint('blocking navigation to ${request.url}');
//               return NavigationDecision.prevent;
//             }
//             debugPrint('allowing navigation to ${request.url}');
//             return NavigationDecision.navigate;
//           },
//           onUrlChange: (UrlChange change) {
//             debugPrint('url change to ${change.url}');
//           },
//           onHttpAuthRequest: (HttpAuthRequest request) {
//             // openDialog(request);
//           },
//         ),
//       )
//       ..addJavaScriptChannel(
//         'Toaster',
//         onMessageReceived: (JavaScriptMessage message) {
//           ScaffoldMessenger.of(context).showSnackBar(
//             SnackBar(content: Text(message.message)),
//           );
//         },
//       )
//       ..loadRequest(Uri.parse("https://support.qq.com/product/152856"));

//     // #docregion platform_features
//     if (controller.platform is AndroidWebViewController) {
//       AndroidWebViewController.enableDebugging(true);
//       (controller.platform as AndroidWebViewController)
//           .setMediaPlaybackRequiresUserGesture(false);
//     }
//     // #enddocregion platform_features

//     _controller = controller;
//   }

//   @override
//   void dispose() {
//     // TODO: implement dispose
//     EventBus().emit('changeStatusColor');
//     super.dispose();
//   }

//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       // We're using a Builder here so we have a context that is below the Scaffold
//       // to allow calling Scaffold.of(context) so we can show a snackbar.
//       appBar: SystemAppBar(
//         '周到安排商家',
//       ),
//       body: Builder(builder: (BuildContext context) {
//         return WebViewWidget(controller: _controller);
//         //   initialUrl: "https://support.qq.com/product/152856",
//         //   javascriptMode: JavascriptMode.unrestricted,
//         //   onWebViewCreated: (WebViewController webViewController) {
//         //     _controller.complete(webViewController);
//         //   },
//         //   // TODO(iskakaushik): Remove this when collection literals makes it to stable.
//         //   // ignore: prefer_collection_literals
//         //   javascriptChannels: <JavascriptChannel>[
//         //     _toasterJavascriptChannel(context),
//         //   ].toSet(),
//         //   navigationDelegate: (NavigationRequest request) {
//         //     if (request.url.startsWith('https://www.youtube.com/')) {
//         //       print('blocking navigation to $request}');
//         //       return NavigationDecision.prevent;
//         //     }
//         //     print('allowing navigation to $request');
//         //     return NavigationDecision.navigate;
//         //   },
//         //   onPageStarted: (String url) {
//         //     print('Page started loading: $url');
//         //   },
//         //   onPageFinished: (String url) {
//         //     print('Page finished loading: $url');
//         //   },
//         //   gestureNavigationEnabled: true,
//         // );
//       }),
//     );
//   }

//   // JavascriptChannel _toasterJavascriptChannel(BuildContext context) {
//   //   return JavascriptChannel(
//   //       name: 'Toaster',
//   //       onMessageReceived: (JavascriptMessage message) {
//   //         ScaffoldMessenger.of(context).showSnackBar(
//   //           SnackBar(content: Text(message.message)),
//   //         );
//   //       });
//   // }
// }