v0.1首个正式支持的版本化规范查看版本范围

ime.textUpdate event

输入法请求对当前文本执行有界替换。guest 应用操作后用 updateState() 回传权威状态。

Event payload

{
  handle,
  update: { range: { start: u32, end: u32 }, text: string },
  baseRevision: u64
}

Examples

host.events.on('ime.textUpdate', async ({ handle, update, baseRevision }) => {
  if (handle !== session || baseRevision !== editor.revision) return;
  editor.replace(update.range, update.text);
  await host.ime.updateState(session, editor.snapshot());
});

Delivery rules

范围以该 revision 的文本为基准,使用 UTF-16 code unit offset 且不得切开代理对。宿主不能把过期编辑静默套到新文本;guest 必须以严格更大的 revision 调用 updateState() 确认接受,或回传当前权威状态明确拒绝。确认前宿主不得发送下一个 textUpdate

Requirements

  • 事件声明:ime.textUpdate
  • 来源:活动 ime-session 句柄
  • 信任档位:继承 ime.openSession 的 green

See also

ime.updateState()ime.composition

Host API 版本与分层概览Host API v0.1版本非正式提议提议canvas API呈现canvas.getInfo()方法canvas.draw()方法canvas.present()方法canvas.measureText()方法canvas.frame event事件canvas.resize event事件asset API呈现asset.read()方法asset.loadFont()方法playback API呈现playback.open()方法playback.write()方法playback.stop()方法playback.ready event事件playback.ended event事件input API输入input.focus()方法input.pointer event事件input.key event事件input.wheel event事件input.focusChange event事件ime API输入ime.openSession()方法ime.updateState()方法ime.updateGeometry()方法ime.closeSession()方法ime.textUpdate event事件ime.composition event事件ime.formatUpdate event事件ime.characterBoundsRequest event事件ime.ended event事件capture API输入capture.requestCamera()方法capture.requestMic()方法capture.frame()方法capture.readAudio()方法capture.stop()方法capture.ended event事件store API数据store.get()方法store.put()方法store.delete()方法store.list()方法store.deletePrefix()方法clipboard API数据clipboard.readText()方法clipboard.writeText()方法env API平台集成env.snapshot()方法env.change event事件开始调用 Host API指南构建交互式绘图应用指南构建自绘文本编辑器指南管理媒体采集与播放指南组织本地数据与同步指南