flutter_webview_plugin.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'dart:async';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/services.dart';
  4. class FlutterWebviewPlugin {
  5. static bool _init = false;
  6. static StreamController<Null> _onDestroy = new StreamController.broadcast();
  7. static Stream<Null> get onDestroy => _onDestroy.stream;
  8. static const MethodChannel _channel =
  9. const MethodChannel('flutter_webview_plugin');
  10. static Future<Null> launch(String url, {bool withJavascript: true, bool clearCache: false, bool clearCookies: false}) =>
  11. _channel.invokeMethod('launch', {
  12. "url": url,
  13. "withJavascript": withJavascript,
  14. "clearCache": clearCache,
  15. "clearCookies": clearCookies
  16. });
  17. static Future<Null> close() => _channel.invokeMethod("close");
  18. static init() {
  19. if (!_init) {
  20. _init = true;
  21. _channel.setMethodCallHandler(_handleMessages);
  22. }
  23. }
  24. static Future<Null> _handleMessages(MethodCall call) async {
  25. if (call.method == "onDestroy") {
  26. _onDestroy.add(null);
  27. }
  28. }
  29. }