# WMPFClientProvider
需 WMPF >= 2.2.0 支持。
封装小程序与移动应用通信的接口。
# AndroidManifest.xml
配置
<application>
<provider
android:name="ClientProvider"
android:authorities="com.tencent.wmpf.cli.provider"
android:enabled="true"
android:exported="true"
tools:ignore="ExportedContentProvider" />
</application>
# 示例代码
public class ClientProvider extends WMPFClientProvider implements WMPFClientProvider.InvokeChannelDelegate, WMPFClientProvider.DeviceActivatedDelegate {
{
setDeviceActivatedDelegate(this);
setInvokeChannelDelegate(this);
}
@Override
public boolean onCreate() {
return true; // 直接返回 true 即可。
}
@Override
public void onDeviceActivated() {
// WMPF 通知设备已经激活成功,一般仅车机自主激活时需要使用,开发者主动调用 activateDevice 的场景可忽略。
}
/**
* 小程序内调用 wmpf.Channel.registerEvent 函数时会调用本函数。
* 事件注册后,可以通过 WMPFClientProvider.notifyInvokeChannelEvent 通知小程序事件。
* 开发者应对 event 和 eventId 的关系进行持久化存储,以保证应用重启后依然可以向小程序正常发送事件。
* @param event 事件名称
* @param eventId 事件 id ,作为后续通知回调的凭据
*/
@Override
public void registerEvent(String event, String eventId) {
}
/**
* 小程序内调用 wmpf.Channel.unregisterEvent 函数时会调用本函数。
* @param event 事件名称
* @param eventId 事件 id
*/
@Override
public void unregisterEvent(String event, String eventId) {
}
/**
* 小程序中调用 wmpf.Channel.invoke 函数时会调用本函数。
* @param method 小程序传入的指令名 (command)
* @param args 小程序传入的指令参数 (data)
* @param callback 向小程序返回结果的 callback
*/
@Override
public void invoke(String method, String args, ExceptionalConsumer<String, ? extends Exception> callback) {
// 处理指令....
callback.consume("{\"errCode\": 0}");
}
/**
* 小程序中调用 wmpf.Channel.invokeSync 函数时会调用本函数。
* @param method 小程序传入的指令名 (command)
* @param args 小程序传入的指令参数 (data)
*/
@Override
public String invokeSync(String method, String args) {
// 处理指令....
return "{\"errCode\": 0}";
}
}