Commit 5f5d375c authored by 7c00's avatar 7c00

实现 android 离线地图下载进度事件

parent 6aa74889
...@@ -79,19 +79,20 @@ class AMapOfflineModule(private val reactContext: ReactApplicationContext) : Rea ...@@ -79,19 +79,20 @@ class AMapOfflineModule(private val reactContext: ReactApplicationContext) : Rea
var state = "" var state = ""
when (code) { when (code) {
OfflineMapStatus.SUCCESS -> state = "downloaded" OfflineMapStatus.SUCCESS -> state = "downloaded"
OfflineMapStatus.LOADING -> state = "expired" OfflineMapStatus.LOADING -> state = "downloading"
OfflineMapStatus.NEW_VERSION -> state = "expired" OfflineMapStatus.NEW_VERSION -> state = "expired"
OfflineMapStatus.WAITING -> state = "waiting"
OfflineMapStatus.UNZIP -> state = "unzip"
} }
return state return state
} }
override fun onDownload(state: Int, progress: Int, name: String?) { override fun onDownload(state: Int, progress: Int, name: String?) {
if (state == OfflineMapStatus.LOADING) { val data = Arguments.createMap()
val data = Arguments.createMap() data.putString("name", name)
data.putString("name", name) data.putString("state", getState(state))
data.putInt("progress", progress) data.putInt("progress", progress)
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit("onDownload", data) reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit("download", data)
}
} }
override fun onCheckUpdate(p0: Boolean, p1: String?) {} override fun onCheckUpdate(p0: Boolean, p1: String?) {}
......
import React, {Component} from 'react' import React, {Component} from 'react'
import {Offline} from 'react-native-amap3d' import {Offline} from 'react-native-amap3d'
// TODO: 提供完整的离线地图示例
export default class IndoorExample extends Component { export default class IndoorExample extends Component {
static navigationOptions = { static navigationOptions = {
title: '离线地图', title: '离线地图',
} }
componentDidMount() { async componentDidMount() {
// Offline.download('铜陵市') console.log(await Offline.getProvinces())
setTimeout(async () => { // Offline.remove('铜陵市')
console.log(await Offline.getProvinces()) Offline.download('河源市')
}, 2000) Offline.addDownloadListener(data => console.log(data))
} }
render() { render() {
......
import {NativeModules, NativeEventEmitter} from 'react-native' import {NativeModules, NativeEventEmitter} from 'react-native'
const {AMapOffline} = NativeModules const {AMapOffline} = NativeModules
const eventEmitter = new NativeEventEmitter(AMapOffline)
export default { export default {
getProvinces: () => AMapOffline.getProvinces(), getProvinces: () => AMapOffline.getProvinces(),
getCities: () => AMapOffline.getCities(), getCities: () => AMapOffline.getCities(),
download: name => AMapOffline.download(name), download: name => AMapOffline.download(name),
remove: name => AMapOffline.remove(name),
addDownloadListener: callback => eventEmitter.addListener('download', callback)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment