Files
ln-ios/ln_jq_app/lib/pages/c_page/map/view.dart
2025-11-27 15:25:58 +08:00

47 lines
1.5 KiB
Dart

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<MapController> {
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<MapController>(
init: MapController(),
id: 'map',
builder: (_) {
return _buildView();
},
);
}
}