文档/Channel API(已退役)
通用开发

Channel API(已退役)

Channel API(已退役)

新开发已退役: 本页只用于识别迁移期旧 Channel 代码。当前插件必须使用 TuffTransport,以及 Box SDKClipboard SDKBridge Hooks 等领域 SDK。

当前契约

Channel API 不再是新插件开发支持的扩展面。

旧表面当前替代
字符串事件发送transport.send(TuffEvent, payload)
字符串事件监听transport.on(TuffEvent, handler) 或插件 bridge hooks
CoreBox 输入监听onCoreBoxInputChange()
CoreBox 剪贴板监听onCoreBoxClipboardChange()
同步发送已由 hard-cut 移除

迁移模式

在同一次变更中把字符串事件名替换为 typed event 对象,不保留 Channel 与 TuffTransport 双轨路径。

EXAMPLE.TS
import { useTuffTransport, CoreBoxEvents } from '@talex-touch/utils/transport'

const transport = useTuffTransport()

const result = await transport.send(CoreBoxEvents.search.query, {
  query: { text: 'hello' }
})

事件订阅

CoreBox 输入和剪贴板更新优先使用 bridge hooks,因为它们包含启动期事件缓存。

EXAMPLE.TS
import { onCoreBoxInputChange } from '@talex-touch/utils/plugin/sdk'

onCoreBoxInputChange(({ data, meta }) => {
  console.log(data.query.text, meta.fromCache)
})

已退役内置名称

这些名称可能仍出现在历史插件代码或迁移说明中,但不再是推荐 API 表面。

已退役名称替代入口
core-box:input-changeonCoreBoxInputChange()
core-box:clipboard-changeonCoreBoxClipboardChange()
plugin:storage:update通过 SDK / TuffTransport 使用 PluginEvents.storage.update

core-box:key-event 已完全退役。该通道没有生产发送端,不允许用于插件键盘处理。

同步表面移除

同步发送已由 hard-cut 移除。插件 renderer SDK 不再暴露同步 channel 方法;旧运行时代码调用会以 plugin_channel_send_sync_removed 明确失败。

类型形态

当前 renderer 侧代码应使用 ITuffTransport 事件 API,而不是 Channel interface:

EXAMPLE.TS
interface ITuffTransport {
  send<TEvent extends TuffEvent<any, any>>(
    event: TEvent,
    payload: EventRequest<TEvent>
  ): Promise<EventResponse<TEvent>>

  on<TEvent extends TuffEvent<any, any>>(
    event: TEvent,
    handler: (payload: EventRequest<TEvent>) => EventResponse<TEvent> | Promise<EventResponse<TEvent>>
  ): () => void
}