30.jsbridge
概述
DJI Pilot 2内嵌的Webview中的H5页面需要开发者自定义设计开发,然后页面的数据和信息是通过JSBridge与DJI Pilot 2进行通信,具体可以通信的JSBridge接口如下:
JS接口
接口功能
参数说明
window.djiBridge.platformSetWorkspaceId(String uuid)
设置工作空间ID
uuid: 工作空间的标识,该id必须为uuid格式。 示例:e3dea0f5-37f2-4d79-ae58-490af3228069
window.djiBridge.platformSetInformation(String platformName, String workspaceName, String desc)
设置平台名称
platformName: 平台名称 workspaceName: DJI Pilot 2上云入口显示工作空间名称 desc: DJI Pilot 2上云入口显示工作空间描述
window.djiBridge.platformGetRemoteControllerSN() : String
获取遥控器SN
返回:遥控器SN
window.djiBridge.platformGetAircraftSN() : String
获取飞机SN
返回:飞机SN
window.djiBridge.platformStopSelf()
关闭并退出平台
退出webview平台
window.djiBridge.apiSetToken(String token)
设置Token
注意:需要加载API模块后才能获取到
window.djiBridge.apiGetToken()
获取Token
从DJI Pilot 2获取api Token
window.djiBridge.onBackClick()
返回键回调
在webview页面时,点击页面左上角的返回键时,会触发该接口回调,如果返回值是true,则DJI Pilot 2不处理,如果是false或者没有实现该函数,则DJI Pilot 2会退出webview页面,效果会跟遥控器实体返回按键一致。注意:遥控器返回键无法触发该回调。
window.djiBridge.onStopPlatform()
退出云平台回调
App点击退出云平台之前,会调用该js方法,js方法执行结束之后,APP才会继续执行退出平台的动作
window.djiBridge.platformSetLogEncryptKey(String key)
设置日志加密key
设置DJI Pilot 2保存的log日志的公钥
window.djiBridge.platformClearLogEncryptKey()
清除日志加密key
清除DJI Pilot 2保存的log日志公钥
window.djiBridge.platformGetLogPath()
获取日志路径
获取DJI Pilot 2保存的日志路径
window.open('scheme://host...', arg);
跳转到第三方App
采用Scheme格式
window.djiBridge.platformGetVersion()
获取版本号
返回: modelVersion:物模型版本 appVersion:APP版本
window.djiBridge.platformIsVerified()
查看接口是否被认证
查看证书是否已经被认证,发起js通信之前,如果没有认证情况下,会出现通信失败。
window.djiBridge.platformVerifyLicense(String appId,String appKey,String license)
License认证
appId: 开发者网站上申请的上云API appId appKey: 开发者网站上申请的上云API appKey license:开发者网站上申请的上云API license 特别注意:需要先通过认证,JSBridge相关的接口才能被调用
window.djiBridge.platformLoadComponent(String name, String param)
加载功能模块
window.djiBridge.platformUnloadComponent(String name)
去除功能模块
-
window.djiBridge.platformIsComponentLoaded(String name)
判断模块是否加载
-
window.djiBridge.platformIsAppInstalled(String pkgName)
检查是否安装了某APP载
pkgName: App包名
返回结构体
所有的JSBridge用于设置的接口都有返回结构体,结构体模板如下:
设备上云模块
name: thing
param:
注意:由于mqtt连接有基于tcp或者websocket的区别,所以DJI Pilot 2中 mqtt url地址需要使用tcp:// ws://
只有加载了对应的模块,模块内的js接口才能正常工作
模块js接口
获取连接状态:
window.djiBridge.thingGetConnectState() : Boolean启动连接:
window.djiBridge.thingConnect(String userName, String passwd, String callback)关闭连接:
window.djiBridge.thingDisconnect()设置回调函数:
window.thing.setConnectCallback(String callback)返回设置的参数param:
window.djiBridge.thingGetConfigs(): String
直播模块
name: liveshare
param:
模块js接口
设置直播模式:
window.djiBridge.liveshareSetVideoPublishType(String type)参数:
video-on-demand:服务器点播,依赖于thing模块,具体的点播命令参见设备物模型的直播服务。video-by-manual:手动点播,配置好直播类型参数之后,在图传页面可修改直播参数,停止直播。video-demand-aux-manual:混合模式,支持服务器点播,以及图传页面修改直播参数,停止直播。获取直播参数:
window.djiBridge.liveshareGetConfig(): String返回值:
App端手动发起直播:
window.djiBridge.liveshareSetConfig(type: Int, params: String)参数:
直播状态监听:
window.djiBridge.liveshareSetStatusCallback(jsCallback)返回值:
获取直播状态:
window.djiBridge.liveshareGetStatus()返回值:
开启App端手动直播:
window.djiBridge.liveshareStartLive()结束App端手动直播:
window.djiBridge.liveshareStopLive()
API模块
借助HTTPS实现的功能模块有地图模块、航线管理模块、媒体管理模块、态势感知模块,它们依赖于 API 模块。若 API 模块的参数重新加载,则依赖 API 模块的功能模块也需要重新加载。
name: api
param:
模块js接口
获取设置的token:
window.djiBridge.apiGetToken()重新设置token:
window.djiBridge.apiSetToken(String token)获取设置的host:
window.djiBridge.apiGetHost()
WS模块
连接示例:wss://xxx.xxxx.xxx:8883?x-auth-token=msikdixkFksikflaol
name: ws
param:
模块js接口
获取连接状态:
window.djiBridge.wsGetConnectState()重新连接:
window.djiBridge.wsConnect(String host, String token, String callback)断开连接:
window.djiBridge.wsDisconnect()发送消息:
window.djiBridge.wsSend(String msg), 消息格式参考Websocket接口说明
地图元素模块
name:map
param:
注意:在加载“地图元素”模块之前,需要先加载“设备上云模块”和websocket。
模块js接口
设置用户名称:
window.djiBridge.mapSetUserName()设置新增元素序号前缀:
window.djiBridge.mapSetElementPreName()
TSA态势感知模块
name:tsa
param:
注意:在加载“地图元素”模块之前,需要先加载“设备上云模块”和websocket。同时参数需要传入{} 空大括号
Media媒体模块
name: media
param:
注意:在加载“Media媒体”模块之前,需要先加载“设备上云模块”,同时媒体库内部逻辑依赖workspace工作空间参数,需要先配置。
模块js接口
设置自动上传照片状态:
window.djiBridge.mediaSetAutoUploadPhoto(boolean auto)获取自动上传照片状态:
window.djiBridge.mediaGetAutoUploadPhoto() : boolean设置自动上传照片类型:
window.djiBridge.mediaSetUploadPhotoType(int type)获取自动上传照片类型:
window.djiBridge.mediaGetUploadPhotoType()设置自动上传视频状态:
window.djiBridge.mediaSetAutoUploadVideo(boolean auto)获取自动上传视频状态:
window.djiBridge.mediaGetAutoUploadVideo() : boolean设置后台自动下载的遥控器:
window.djiBridge.mediaSetDownloadOwner(int rc)0:本控,1:其他控获取后台自动下载的遥控器编号:
window.djiBridge.mediaGetDownloadOwner(): int0:本控,1:其他控
航线模块
name:mission
param:
注意:在加载航线模块之前,需要先加载“设备上云模块”。同时参数需要传入{} 空大括号
Last updated