webview_page.dart 2.81 KB
import 'dart:async';
import 'dart:convert';
import 'dart:io';

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

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

class _WebViewPageState extends State<WebViewPage> {
  final Completer<WebViewController> _controller =
      Completer<WebViewController>();

  @override
  void initState() {
    super.initState();
    // Enable hybrid composition.
    // if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

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

  @override
  Widget build(BuildContext context) {
    return Container();
    // 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 WebView(
    //       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)),
  //         );
  //       });
  // }
}