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

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

parent 6aa74889
......@@ -79,19 +79,20 @@ class AMapOfflineModule(private val reactContext: ReactApplicationContext) : Rea
var state = ""
when (code) {
OfflineMapStatus.SUCCESS -> state = "downloaded"
OfflineMapStatus.LOADING -> state = "expired"
OfflineMapStatus.LOADING -> state = "downloading"
OfflineMapStatus.NEW_VERSION -> state = "expired"
OfflineMapStatus.WAITING -> state = "waiting"
OfflineMapStatus.UNZIP -> state = "unzip"
}
return state
}
override fun onDownload(state: Int, progress: Int, name: String?) {
if (state == OfflineMapStatus.LOADING) {
val data = Arguments.createMap()
data.putString("name", name)
data.putInt("progress", progress)
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit("onDownload", data)
}
val data = Arguments.createMap()
data.putString("name", name)
data.putString("state", getState(state))
data.putInt("progress", progress)
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit("download", data)
}
override fun onCheckUpdate(p0: Boolean, p1: String?) {}
......
import React, {Component} from 'react'
import {Offline} from 'react-native-amap3d'
// TODO: 提供完整的离线地图示例
export default class IndoorExample extends Component {
static navigationOptions = {
title: '离线地图',
}
componentDidMount() {
// Offline.download('铜陵市')
setTimeout(async () => {
console.log(await Offline.getProvinces())
}, 2000)
async componentDidMount() {
console.log(await Offline.getProvinces())
// Offline.remove('铜陵市')
Offline.download('河源市')
Offline.addDownloadListener(data => console.log(data))
}
render() {
......
import {NativeModules, NativeEventEmitter} from 'react-native'
const {AMapOffline} = NativeModules
const eventEmitter = new NativeEventEmitter(AMapOffline)
export default {
getProvinces: () => AMapOffline.getProvinces(),
getCities: () => AMapOffline.getCities(),
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