打印/下载
配置
案例

Android( android/app/src/main/AndroidManifest.xml )


<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- 高德地图 -->
<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="${高德 Android Key}" />

iOS( ios/Runner/Info.plist )


<key>NSFileProviderPresenceUsageDescription</key>
<string>使用时允许访问文件</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>始终允许定位(提高后台定位准确率)</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>使用时始终允许定位</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>使用时允许定位</string>
import 'package:flutter/material.dart';
import 'package:webmis/library/plus/map-geolocation.dart';

class Demo extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => DemoState();
}
class DemoState extends State<Demo> {

  Map<String,dynamic> _location;

  /* 构造函数 */
  @override
  void initState() {
    super.initState();
    // 定位
    _getLocation();
  }

  /* 销毁 */
  @override
  void dispose(){
    super.dispose();
    MapGeolocation.dispose();
  }

  /* 定位 */
  Future<void> _getLocation() async {
    Map res = await MapGeolocation.fetch(context);
    if(res['longitude']>0) setState(()=> _location=res );
  }

  /* Widget */
  @override
  // ignore: must_call_super
  Widget build(BuildContext context) {
    return Scaffold(
      body: Text('高德定位'),
    );
  }

}
{{copy}}