controller.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:electronic_assistant/base/base_controller.dart';
  2. import 'package:flutter/widgets.dart';
  3. import 'package:get/get.dart';
  4. import 'package:webview_flutter/webview_flutter.dart';
  5. class BrowserController extends BaseController {
  6. String url = (Get.arguments is String) ? (Get.arguments as String) : '';
  7. final WebViewController webViewController = WebViewController();
  8. final title = ''.obs;
  9. @override
  10. void onInit() {
  11. super.onInit();
  12. webViewController.setNavigationDelegate(
  13. NavigationDelegate(
  14. onPageFinished: (String url) {
  15. webViewController.getTitle().then((title) {
  16. if (title != null) {
  17. this.title.value = title;
  18. }
  19. });
  20. },
  21. onNavigationRequest: (NavigationRequest request) {
  22. return NavigationDecision.navigate;
  23. },
  24. ),
  25. );
  26. webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
  27. }
  28. @override
  29. void onReady() {
  30. super.onReady();
  31. loadUrl();
  32. }
  33. void loadUrl() {
  34. if (url.isEmpty) {
  35. return;
  36. }
  37. webViewController.loadRequest(Uri.parse(url));
  38. }
  39. Future<bool> handleBack() async {
  40. if (await webViewController.canGoBack()) {
  41. webViewController.goBack();
  42. return false;
  43. }
  44. return true;
  45. }
  46. }