BioforestChain / dweb_browser

BioforestChain Infrastructure
https://docs.dweb-browser.org
MIT License
13 stars 4 forks source link

【提案】废弃 `config.sys.dweb` `window.std`提供监听主题改变的能力 #202

Open waterbang opened 1 month ago

waterbang commented 1 month ago

原因:用来监听用户设备的主题颜色改变,来适配light/dark。 开发者可以监听到改变的时候改变自己app的主题颜色,来提供更好的体验。

export enum ThemeStatus {
Light,
Dark
}
configPlugin..addEventListener("ThemeSwitch", (event)=> {
  const status:ThemeStatus = event.data
})
Gaubee commented 1 month ago

目前要监听主题是否改变,只能的方案是:

  1. 通过 web 的 css+js 来实现监听。
  2. 读取 HttpHeaders 中的 Sec-CH-Prefers-Color-Scheme 字段
  3. 而 js-process 仅有的信息只是 “主题色偏好” 这个属性,也就是 auto、light、dark。但在 auto 下,用户感知不到具体在使用的主题色。

所以如果真的有这个需求,我觉得也应该由 window.std 出发去实现,去进行查询。 比方说:

包括目前 config 中的 setLang 也是同样的,应该迁移到 window.std 中去实现。 开发者需要面对的是自己的窗口内容的配置,而不是去在乎操作系统的配置。因为窗口内容是 内容提供者(开发方) 和 用户设置 最终下来的结果。 比方说:

同样的,也应该提供监听功能:

参考资料:

waterbang commented 1 month ago

切换目标 移除 config.sys.dweb 按照上面的行动。