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();
      },
    );
  }
}
