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

canvas.resize event

当应用绘图面的逻辑宽高或粗化像素比变化时发送。事件之后,基于旧尺寸的软件帧可以被拒绝。

Event payload

{
  canvasId: string,
  width: u32,
  height: u32,
  dpr: f32,
  safeArea: { top: u32, right: u32, bottom: u32, left: u32 }
}

Examples

host.events.on('canvas.resize', ({ canvasId, width, height }) => {
  if (canvasId !== 'main') return;
  renderer.resize(width, height);
  invalidateLayout();
});

若一次布局变化产生多次中间尺寸,宿主可以只发送最终状态。应用需要权威快照时调用 getInfo()

Delivery rules

  • 宽高和 safe-area 使用逻辑像素;宽高必须为正整数,inset 必须满足模块页约束。
  • dpr 不得比 getInfo() 提供更高精度。
  • 销毁绘图面后不再发送。
  • 最新 resize 必须先于针对新状态产生的第一个 frame 入队;中间 resize 可合并为最终状态,但不能越过该 frame。

Requirements

  • 事件声明:canvas.resize
  • 来源:passive;只针对本应用 manifest 中的绘图面
  • 信任档位:继承 canvas 的 green

See also

canvas.getInfo()canvas.present()

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指南构建交互式绘图应用指南构建自绘文本编辑器指南管理媒体采集与播放指南组织本地数据与同步指南