browser_view.dart 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'package:flutter/Material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:flutter_screenutil/flutter_screenutil.dart';
  4. import 'package:get/get.dart';
  5. import 'package:get/get_core/src/get_main.dart';
  6. import 'package:webview_flutter/webview_flutter.dart';
  7. import '../../base/base_page.dart';
  8. import '../../resource/assets.gen.dart';
  9. import '../../router/app_pages.dart';
  10. import 'browser_controller.dart';
  11. class BrowserPage extends BasePage<BrowserController> {
  12. const BrowserPage({super.key});
  13. static start(String url) {
  14. Get.toNamed(RoutePath.browser, arguments: url);
  15. }
  16. @override
  17. bool immersive() {
  18. // TODO: implement immersive
  19. return true;
  20. }
  21. @override
  22. Widget buildBody(BuildContext context) {
  23. return WillPopScope(
  24. onWillPop: () async {
  25. return await controller.handleBack();
  26. },
  27. child: Scaffold(
  28. backgroundColor: Colors.transparent,
  29. appBar: AppBar(
  30. systemOverlayStyle: SystemUiOverlayStyle.light,
  31. backgroundColor: Colors.transparent,
  32. title: Obx(
  33. () => Text(
  34. controller.title.value,
  35. style: TextStyle(
  36. fontSize: 17.sp,
  37. color: Colors.white,
  38. ),
  39. ),
  40. ),
  41. leading: IconButton(
  42. icon: SizedBox(
  43. width: 24.w,
  44. height: 24.w,
  45. child: Assets.images.iconCommonBack.image()),
  46. // Custom icon
  47. onPressed: () {
  48. Get.back();
  49. },
  50. ),
  51. ),
  52. body: _buildContentView(),
  53. ),
  54. );
  55. }
  56. Widget _buildContentView() {
  57. return WebViewWidget(controller: controller.webViewController);
  58. }
  59. }