# PrefetchDeviceToken
WMPF 2.1.0 开始,本接口不需要
ActivateDevice
即可使用。
预拉取设备凭证。
在某些需要使用设备凭证的场景,可以提前拉取设备凭证。预拉取后,在凭证有效期内(目前为 1 小时),框架使用时可以直接从缓存读取,不需要重新请求。
例如:发起小程序音视频通话(for 硬件)前,预拉取设备凭证可以降低发起通话的耗时。
WMPF 1.2.0 版本开始支持。
# 注意事项
- 注册是否成功以返回值里的
errMsg
为准(errMsg 非空为失败),而不以接口调用是否成功。
# 调用参数
无
# 返回参数
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 错误详情 |
# 示例代码
fun prefetchDeviceToken(): Single<WMPFPrefetchDeviceTokenResponse> {
return Single.create {
val request = WMPFPrefetchDeviceTokenRequest().apply {
this.baseRequest = WMPFBaseRequestHelper.checked()
}
val result = WMPFIPCInvoker.invokeAsync<IPCInvokerTask_PrefetchDeviceToken, WMPFPrefetchDeviceTokenRequest, WMPFPrefetchDeviceTokenResponse>(
request,
IPCInvokerTask_PrefetchDeviceToken::class.java,
object : IPCInvokeCallbackEx<WMPFPrefetchDeviceTokenResponse> {
override fun onCallback(response: WMPFPrefetchDeviceTokenResponse) {
if (isSuccess(response)) {
it.onSuccess(response)
} else {
it.onError(TaskErrorException(createTaskError(response)))
}
}
override fun onBridgeNotFound() {
it.onError(Exception("bridge not found"))
}
override fun onCaughtInvokeException(exception: java.lang.Exception?) {
if (exception != null) {
it.onError(exception)
} else {
it.onError(java.lang.Exception("null"))
}
}
})
if (!result) {
it.onError(Exception("invoke prefetchDeviceToken fail"))
}
}
}