env.change event
通知一个或多个环境字段发生变化。事件不携带新值;guest 重新调用 snapshot() 获取一致状态。
Event payload
{ changedFields: EnvironmentField[] }
Examples
host.events.on('env.change', async ({ changedFields }) => {
const env = await host.env.snapshot();
if (changedFields.includes('colorScheme')) ui.setDark(env.colorScheme === 'dark');
});
Delivery rules
尚未交付的变化可以合并,changedFields 是其间所有失效字段的集合;它使用模块页封闭枚举、按枚举声明顺序排列且不重复。事件不带高精度时间戳,也不能用事件次数追踪用户。
Requirements
- 事件声明:
env.change - 来源:
passive;只在应用活动时送达,恢复前台可合并为一次 - 信任档位:继承
env.snapshot的 green