维智物联定位SDK Flutter 插件

维智物联定位SDK Flutter 插件 开发指南维智定位SDK Flutter 插件在Android / iOS / HarmonyOS上调用原生 Wayz 定位SDK 完成持续定位、正/逆地理编码、场所搜索等功能。SDK与Flutter插件Flutter插件源码不附带Android/ iOS / HarmonyOS SDK需由开发者自行导入SDK按平台提供集成文档对接。安装wz_location_plugin在应用pubspec.yaml中依赖本插件本地 pathdependencies: wz_location_plugin: path: ../wz_location_plugin # 改为相对你工程的实际路径然后执行flutter pub getAndroid 集成下载 SDK将官网下载的sdk示例wayz-sdk-android-7.1.0.jar放在android/app/libs/下。在android/app/build.gradle中导入sdk。示例dependencies { implementation files(libs/wayz-sdk-android-7.1.0.jar) }在../wz_location_plugin/android/build.gradle中导入sdk。示例dependencies { // 这里sdk路径需配置为实际路径 compileOnly files(../../../android/app/libs/wayz-sdk-android-7.1.0.jar) }添加权限AndroidManifest.xmluses-permission android:nameandroid.permission.INTERNET/ !--用于进行网络定位-- uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION/uses-permission !--用于访问GPS定位-- uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION/uses-permission !--用于读取手机当前的状态获取基站信息-- uses-permission android:nameandroid.permission.READ_PHONE_STATE/uses-permission !--用于获取运营商信息用于支持提供运营商信息相关的接口-- uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE/uses-permission !--用于访问wifi网络信息wifi信息会用于进行网络定位-- uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE/uses-permission !--用于获取wifi的获取权限wifi信息会用来进行网络定位-- uses-permission android:nameandroid.permission.CHANGE_WIFI_STATE/uses-permission !--用于访问网络网络定位需要上网-- uses-permission android:nameandroid.permission.INTERNET/uses-permission !--用于申请调用A-GPS模块-- uses-permission android:nameandroid.permission.ACCESS_LOCATION_EXTRA_COMMANDS/uses-permission !-- 基础前台服务权限兼容 Android 8.0-11 -- uses-permission android:nameandroid.permission.FOREGROUND_SERVICE/ !-- Android 12 定位类前台服务专用权限 -- uses-permission android:nameandroid.permission.FOREGROUND_SERVICE_LOCATION/ !-- 后台定位核心权限Android 10 -- uses-permission android:nameandroid.permission.ACCESS_BACKGROUND_LOCATION/添加定位服务application service android:namecom.wayz.location.WzService/service /applicationiOS 集成下载 SDK从 Wayz 获取官方的wzLib.xcframework。将wzLib.xcframework放在ios目录下即/ios/WayzLocal/wzLib.xcframework。在 App 的ios/Podfile的target Runner中flutter_install_all_ios_pods之前加入pod WayzLocal, :path WayzLocaltarget Runner do # Wayz wzLib.xcframework 为静态产物时需配置静态 linkage # 否则 CocoaPods 报 transitive static binary 错误 use_frameworks! :linkage :static use_modular_headers! # 导入wzLib.xcframework pod WayzLocal, :path WayzLocal flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target RunnerTests do inherit! :search_paths end end执行pod install后再编译。最低 iOS 版本与示例一致为13.0platform :ios, 13.0。隐私与权限Info.plist至少配置「使用期间」定位用途说明若需后台定位再配置「始终」相关键例如keyNSLocationWhenInUseUsageDescription/key string是否允许使用您的定位/string keyNSLocationAlwaysAndWhenInUseUsageDescription/key string是否允许后台一直使用定位/string需要后台定位时在Info.plist中配置UIBackgroundModes含location。keyUIBackgroundModes/key array stringlocation/string /arrayHarmonyOS 集成下载 SDK从 Wayz 获取官方的wayz-sdk-hmos-next_3.0.0.har放到应用鸿蒙工程ohos/libs/在应用ohos/oh-package.json5中声明依赖。例如wzlocation: file:./libs/wayz-sdk-hmos-next_3.0.0.har在../wz_location_plugin/ohos/oh-package.json5中导入sdk。示例dependencies: { wzlocation: file:../../../ohos/libs/wayz-sdk-hmos-next_3.0.0.har }隐私与权限在/ohos/entry/src/main/module.json5添加权限{ requestPermissions: [ { name: ohos.permission.INTERNET }, { name: ohos.permission.LOCATION, reason: $string:permission_reason_location, usedScene: { abilities: [ EntryAbility ], when: inuse } }, { name: ohos.permission.LOCATION_IN_BACKGROUND, reason: $string:permission_reason_location_in_background, usedScene: { abilities: [ EntryAbility ], when: always } }, { name: ohos.permission.APPROXIMATELY_LOCATION, reason: $string:permission_reason_approx_location, usedScene: { abilities: [ EntryAbility ], when: inuse } }, { name: ohos.permission.APP_TRACKING_CONSENT, reason: $string:permission_reason_app_tracking_consent, usedScene: { abilities: [ EntryAbility ], when: inuse } }, { name: ohos.permission.GET_WIFI_INFO, reason: $string:permission_reason_get_wifi_info, usedScene: { abilities: [ EntryAbility ], when: inuse } }, { name: ohos.permission.GET_NETWORK_INFO, reason: $string:permission_reason_get_network_info, usedScene: { abilities: [ EntryAbility ], when: inuse } }, { name: ohos.permission.KEEP_BACKGROUND_RUNNING, reason: $string:permission_reason_keep_background_running, usedScene: { abilities: [ EntryAbility ], when: always } } ] } }在/ohos/entry/src/main/resources/base/element/string.json添加权限说明{ string: [ { name: permission_reason_location, value: 允许应用在前台运行时获取位置信息 }, { name: permission_reason_location_in_background, value: 允许应用在后台运行时获取位置信息 }, { name: permission_reason_approx_location, value: 允许应用获取设备模糊位置信息 }, { name: permission_reason_app_tracking_consent, value: 允许应用获取设备唯一标识符 }, { name: permission_reason_get_wifi_info, value: 允许应用获取连接wifi信息 }, { name: permission_reason_get_network_info, value: 允许应用获取网络信息 }, { name: permission_reason_keep_background_running, value: 允许应用进行长时任务 } ] }Dart 集成与使用1. 引用import package:wz_location_plugin/wz_location_plugin.dart;2. 隐私合规在使用定位功能之前调用以下方法标识用户已同意隐私政策WzLocationPlugin.updatePrivacyShow(true, false); WzLocationPlugin.updatePrivacyAgree(true);3. 配置 KeyWzLocationPlugin().setApiKey(你的 apiKey);//官网获取4.单次定位WzLocationPlugin().setLocationOption( WzLocationOption( apiKey: 你的 apiKey, //官网获取 interval: 5000,//定位时间间隔单位毫秒 isLocateOnce: true,//是否是单次定位 ), ); StreamSubscriptionMapString, Object?? onLocationChangedSub WzLocationPlugin().onLocationChanged().listen( (event) log(onLocationChanged: $event), onError: (Object e, StackTrace st) log(onLocationChangederror: $e), ); }; // 调用前需判断是否授权定位相关权限 WzLocationPlugin().startLocation();5.连续定位WzLocationPlugin().setLocationOption( WzLocationOption( apiKey: 你的 apiKey, //官网获取 interval: 5000,//定位时间间隔单位毫秒 isLocateOnce: false,//是否是单次定位 ), ); StreamSubscriptionMapString, Object?? onLocationChangedSub WzLocationPlugin().onLocationChanged().listen( (event) log(onLocationChanged: $event), onError: (Object e, StackTrace st) log(onLocationChangederror: $e), ); }; // 调用前需判断是否授权定位相关权限 WzLocationPlugin().startLocation();Flutter定SDK下载https://lothub.newayz.com/download/flutter-download/Flutter定位SDK示例代码下载https://lothub.newayz.com/download/flutter-download-sample/