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