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

客户端接口 - (v1)registerEvent

registerEvent

当小程序中调用 wmpf.Channel.registerEvent时,会通知到 Client 端。当小程序注册的事件触发时,客户端需要向小程序发送对应事件,小程序可以通过 wmpf.Channel.on 监听。

传入参数

通过 ContentValues 传递

参数 类型 必填 说明
event_id String 调用 id ,作为后续通知回调的凭据
event String 事件名

回调参数

通过 insert 操作通知及 ContentValues 传递

参数 类型 必填 说明
event_id String 调用 id ,作为通知回调的凭据
event String 事件名
data String 第三方 app 经 wmpf 透传到小程序的数据

示例代码

override fun insert(p0: Uri, p1: ContentValues?): Uri? {
  when(sURIMatcher.match(p0)) {
    // 回调事件注册
    CODE_NOTIFY_INVOKE_CHANNEL_EVENT -> {
      val eventId = p1?.getAsString(InvokeChannelConstants.Key.EVENT_ID)
      val event = p1?.getAsString(InvokeChannelConstants.Key.EVENT)
      Log.i(TAG, "register, eventId: $eventId, event: $event")
      mEventIdList.put(eventId, event)
    }
  }
  return null
}

// 在特定时机通知某个已经注册的 event ,并传入相关 data 到小程序端
private fun notifyEvent(counter: Int, eventId: String?, event: String?) {
  if (!mEventIdList.containsKey(eventId)) {
    return 
  }
  val cv = ContentValues()
  cv.apply {
    put(InvokeChannelConstants.Key.EVENT_ID, eventId)
    put(InvokeChannelConstants.Key.EVENT, event)
    put(InvokeChannelConstants.Key.DATA, "event$counter notify event success")
  }
  try {
    context.contentResolver.insert(InvokeChannelConstants.ContentProvider.Cli2WMPF.URI_NOTIFY_INVOKE_CHANNEL_EVENT, cv)
    Log.i(TAG, "send message success, content: event$counter success")
  } catch (e: Exception) {
    Log.e(TAG, "callback invoke channel error")
  }
}
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

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