用途:面向 OneKey 桌面端 MultiTabBrowser 与移动端 Discovery 浏览器的开发工作,涉及 WebView 生命周期、DApp 连接、书签与历史、搜索、URL 校验及埋点分析。
主要能力与关键文件:模块地图见 module-map.md,对应 packages/kit/src/views/Discovery/ 与 packages/kit-bg/src/services/ServiceDiscovery.ts;标签与导航见 tabs-navigation.md,对应 packages/kit/src/states/jotai/contexts/discovery/;WebView 与安全见 webview-security.md,对应 packages/kit/src/views/Discovery/components/WebContent/;DApp 连接见 dapp-connection.md,对应 ServiceDApp.ts 与 packages/kit/src/views/DAppConnection/;数据、搜索、书签见 data-search-bookmarks.md,对应 ServiceDiscovery.ts、useSearchModalData.ts 与 SimpleDB browser 实体;测试与评审见 testing-review.md,对应 .test.ts、.test.tsx 与 discovery logger scenes。
默认流程:先确认启用的平台形态(移动端 Discovery 标签或桌面 MultiTabBrowser);读 module-map.md 后只打开与改动匹配的规则文件;改 UI 前先沿 useBrowserTabActions、useBrowserAction、ServiceDiscovery 追踪状态;保留 .native.tsx、.desktop.tsx、.ext.tsx 与无后缀回退文件的平台差异;除非明确要求,扩展/Web 路径按回退或共享基础设施处理;确认 URL 校验、深链处理、DApp provider 通知与 SimpleDB 持久化数据仍一致。
硬性规则:加载任意 URL 时不得绕过 uriUtils.validateUrl、parseDappRedirect、validateWebviewSrc 或深链处理;不得绕过 buildWebTabs/setWebTabData 直接改标签,持久化与活动标签映射依赖该路径;不得在单标签清理时清除共享 Electron webview 会话缓存,webview 共享 partition="persist:onekey";不得通过 modal 参数或 defaultLogger 传递密钥、原始剪贴板文本或无界负载;改动埋点需同时使用 /1k-analytics。
相关技能:/1k-cross-platform、/1k-state-management、/1k-feature-guides、/1k-i18n、/1k-analytics、/1k-performance。
限制:资料未提供安装命令、收费与平台支持范围等细节。