controller.dart 1.2 KB

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