flutter_web_sdk
LocNaviWebSDK 对应的fultter plugin,目前提供iOS、Android平台代码支持。
版本對照
本套件維護兩條版本線,flutter pub get 會依據專案的 Dart SDK 自動選擇適用版本。
| 套件版本 | Flutter | Dart | Null Safety | 分支 |
|---|---|---|---|---|
1.x |
>= 2.5.0 | >= 2.19.0 | 支援 | main |
0.1.x |
>= 1.20.0 | >= 2.7.0 | 不支援 | legacy-1.22 |
安裝
flutter pub add locnavi_web_sdk
或直接於 pubspec.yaml 指定:
dependencies:
locnavi_web_sdk: ^1.0.0 # Flutter 2.5 以上
# locnavi_web_sdk: ^0.1.0 # Flutter 1.20 ~ 2.0
0.1.x相容線僅修正缺陷,不再新增功能,版號固定維持在0.x。 兩條線的公開 API 完全相同,差別僅在型別是否標記為 nullable。
SDK 文檔
獲取AppKey
appKey、mapId、targetName、targetId等信息請向 richard.chin@locnavi.com 申請
iOS
在iOS工程的info.plist中添加授权申明
<key>NSBluetoothAlwaysUsageDescription</key>
<string>室内定位需要使用蓝牙功能</string>
<key>NSCameraUsageDescription</key>
<string>AR需要使用摄像头功能</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>请求在App使用期间使用定位功能</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>请求在App使用期间使用定位功能</string>
<key>NSMicrophoneUsageDescription</key>
<string>语音识别需要用到麦克风功能</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>请求在App使用期间使用语音识别功能</string>
iOS
在Android工程的AndroidMainfest.xxml中添加
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 调用定位权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 调用摄像头的权限 -->
<uses-permission android:name="android.permission.CAMERA"/>
<!-- 调用麦克风的权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
flutter
初始化
_locnaviWebSdkPlugin.init('appkey');
//或选择性 设置服务url、ibeacon的扫描uuid、定时上传定位数据及上传间隔
await _locnaviWebSdkPlugin.init('nqB6HPIU2C', serverUrl: 'https://xxx.com', uuids: ['uuid1', 'uuid2'], uploadApi: 'https://xxx.com', uploadInterval: 1000, userId:'testUser');
显示室内地图
_locnaviWebSdkPlugin.openMap('mapId');
导航至具体的poi位置
//poi数据需要在导航系统中录入过,
_locnaviWebSdkPlugin.openMap('mapId', 'poiId');