随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 74060

客户端接口 - WMPFClientProvider

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}";
    }
}
posted on   AtlasLapetos  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示