browser_page.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:webview_flutter/webview_flutter.dart';
  6. import '../../base/base_page.dart';
  7. import '../../resource/assets.gen.dart';
  8. import '../../resource/colors.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. Widget buildBody(BuildContext context) {
  18. return PopScope(
  19. canPop: true,
  20. onPopInvokedWithResult: (didPop, result) async {
  21. if (didPop) {
  22. return;
  23. }
  24. await controller.handleBack();
  25. },
  26. child: Scaffold(
  27. backgroundColor: Colors.transparent,
  28. appBar: AppBar(
  29. systemOverlayStyle: SystemUiOverlayStyle.dark,
  30. backgroundColor: Colors.transparent,
  31. title: Obx(
  32. () => Text(
  33. controller.title.value,
  34. style: TextStyle(
  35. fontSize: 17.sp,
  36. color: ColorName.primaryTextColor,
  37. ),
  38. ),
  39. ),
  40. leading: IconButton(
  41. icon: SizedBox(
  42. width: 24.w,
  43. height: 24.w,
  44. child: Assets.images.iconBlackBack.image(),
  45. ),
  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. }