import 'package:flutter/material.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:getx_scaffold/getx_scaffold.dart'; import 'controller.dart'; class MapPage extends GetView { const MapPage({super.key}); Widget _buildView() { return Stack( children: [ InAppWebView( initialFile: 'assets/html/map.html', initialSettings: InAppWebViewSettings( isInspectable: true, // 既然完全依赖 Flutter 定位,建议把 WebView 的定位彻底关掉,防止 JS 意外触发 geolocationEnabled: false, javaScriptEnabled: true, // Android 混合开发推荐配置 useHybridComposition: true, // 提升地图渲染性能(重要) allowFileAccessFromFileURLs: true, // 允许本地 html 访问本地资源 allowUniversalAccessFromFileURLs: true, ), // 当 WebView 创建完成后,将 controller 实例传递给我们的 MapController onWebViewCreated: controller.onWebViewCreated, onConsoleMessage: (controller, consoleMessage) { // 方便在 Flutter 控制台查看来自 JS 的日志 print("JS Log: ${consoleMessage.message}"); }, ), ], ); } @override Widget build(BuildContext context) { return GetBuilder( init: MapController(), id: 'map', builder: (_) { return _buildView(); }, ); } }