第八部分 — UI 表面 options 页面模式

18.1 目的

选项是您持久化设置的用户界面。 与弹出窗口不同,它们可以是一个真正的页面,具有导航和帮助文本。

18.2 使用场景 / 避免使用场景

使用场景: 当你需要让用户能够编辑和再次访问的设置时, 或者需要一个帮助文本/隐私说明的地方。

避免使用场景: UI 真正微小且短暂(弹出窗口可能就足够了),或 你需要一个持久化的工具界面(考虑使用侧边栏)。

18.3 options_page vs options_ui (快速映射)

  • options_page: 以普通标签页/页面的形式打开。

  • options_ui: 可嵌入到 chrome://extensions 中(如果 open_in_tab: false)。

如果你不确定:使用 options_page(更简单的心理模型)。

18.4 最小化模式:加载默认设置 + 保存

options.js: CODE_BLOCK_71

18.5 检查列表

  • \] 始终使用默认值加载

  • \] 显示清晰的"已保存"状态

一个最小化的 MV3 安全异步消息处理器(适合作为模板):

javascript 复制代码
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  (async () => {
    if (msg?.type !== "PING") return;
    sendResponse({ ok: true });
  })().catch((err) => sendResponse({ ok: false, error: String(err) }));
  return true; // keep channel open for async
});

18.6 常见问题

  • 频繁向 sync 写入(配额限制)

  • 存储密钥(不要)

18.7 参考资料

相关推荐
JosieBook7 小时前
【WinForm】C# WinForms 跨线程更新 UI 避坑指南
开发语言·ui·c#
喵叔哟9 小时前
17. 【Blazor全栈开发实战指南】--Blazor UI框架集成
ui·微服务·.net
JamesYoung797111 小时前
第八部分 — UI 表面 sidePanel (如使用) + UX约束
前端·javascript·ui·ux
Hody9112 小时前
【XR开发系列】UI 入门 - 创建一个简单的分数显示
ui·xr
工控小龙人1 天前
核电行业HMI:核岛设备的安全监控与操作界面
ui·人机交互·制造·用户界面
XiaoLeisj1 天前
Android 文件与数据存储实战:SharedPreferences、SQLite 与 Room 的渐进式实现
android·java·数据库·ui·sqlite·room·sp
互联网散修2 天前
鸿蒙应用开发UI基础第十八节:表单交互核心组件Button、Radio、Toggle示例演示
ui·交互·harmonyos
●VON2 天前
2G 内存云服务器部署 Spring Boot + MySQL 实战:从踩坑到上线
服务器·开发语言·spring boot·mysql·ui·von
Swift社区2 天前
ArkUI 如何设计 AI 原生 UI?
人工智能·ui