@finclip/ide-sdk-map
v1.8.23-idesdk.5
Published
Downloads
4
Readme
本项目为 SDK 提供了 MAP 组件 API / 位置 API 交互界面
MAP 组件相关 API
模块引入:
import mapModule from '@finclip/ide-sdk-map'
mapModule 暴露以下 API:
- insertNativeMap
- removeNativeMap
- updateNativeMap
- injectBridgeHelpers
在 MAP 组件挂载,insertNativeMap 被调用之前,需要通过 injectBridgeHelpers 注入一些相关的 helpers function,使用方法如下:
/**
* @param {Function} invokeCallback
* function invokeCallback (statue, event, callbackId, params = {}) {
* // implement
* }
* @param {Function} emitCustomEvent
* @param {Object} FinChatJSBridge
mapModule.injectBridgeHelpers(invokeCallback, emitCustomEvent, FinChatJSBridge)
调用时需确保 FinChatJSBridge 可获取
位置相关 API 交互界面 webApp
引入:
- 引入 @finclip/ide-sdk-map/dist'(里面包含 index.html 及相应的静态资源)
通讯:
SDK 与该 webApp 通过 postMessage 通讯
// 发送数据 window.postMessage({ event: 'chooseLocation' // chooseLocation, openLocation, choosePoi openType: '' // open, choose, choosePoi latitude: xxx, // number longitude: xxx, //number scale: xxx, //number name: 'jimmy', address: 'xxxx', locationId: '', // 随机串,用于标记事件唯一,仅 chooseLocation 传递 choosepoiId: '' // 随机串,用于标记事件唯一,仅 choosePoi 传递 }) // 接收数据 window.addEventListener("message", (e) => { const data = e.data const { event, ...recieveData } = data // event: chooseLocation, openLocation, choosePoi // recieveData 接收到的实际数据 }, false); // SDK 一侧可以通过监听 webApp 的 onLoad 事件的 isMapFrameLoaded ,判断其是否已经加载完成 window.addEventListener("message", (e) => { const data = e.data const { event, ...recieveData } = data choosePoi if(event === 'onLoad') { const isMapFrameLoaded = recieveData.isMapFrameLoaded } }, false);