关于 1k-feature-guides
为 OneKey 应用功能扩展提供开发指南的技能,面向应用开发者。内容覆盖区块链网络、WebSocket 事件、推送通知以及页面和路由配置,并列出相关文件与实现步骤。
主要功能
- 01指导添加区块链网络
- 02说明 WebSocket 事件接入
- 03介绍推送通知模式与处理
- 04梳理页面类型和路由配置
- 05提供关键文件与参考实现
适用场景
- 01为 OneKey 接入新的区块链网络
- 02添加并确认 WebSocket 消息事件
- 03实现通知的页面跳转或链接打开
- 04新增页面并配置对应路由
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-feature-guides安装后在 Claude Code 中输入/1k-feature-guides确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/rules/adding-chains.mdadding-socket-events.mdnotification-system.mdpage-and-route.md详细介绍
功能开发指南
扩展 OneKey 应用功能的综合指南。
快速参考
| 功能 | 指南 | 关键文件 |
|---|---|---|
| 添加区块链 | adding-chains.md | packages/core/src/chains/ |
| 添加 WebSocket 事件 | adding-socket-events.md | packages/shared/types/socket.ts |
| 推送通知 | notification-system.md | packages/kit-bg/src/services/ServiceNotification/ |
| 页面与路由 | page-and-route.md | packages/kit/src/routes/ |
添加新区块链
参见:references/rules/adding-chains.md
关键步骤:
- 在
packages/core/src/chains/mychain/中实现区块链核心逻辑 - 在
packages/shared/src/config/chains/中添加区块链配置 - 更新 UI 组件以支持区块链特定功能
- 添加全面的测试
参考实现:
- EVM 区块链:
packages/core/src/chains/evm/ - Bitcoin:
packages/core/src/chains/btc/ - Solana:
packages/core/src/chains/sol/
添加 WebSocket 事件
参见:references/rules/adding-socket-events.md
关键步骤:
- 在
EAppSocketEventNames枚举中定义事件名称 - 定义包含
msgId: string的负载类型接口 - 在
PushProviderWebSocket.initWebSocket()中添加事件处理程序 - 始终通过
ackNotificationMessage确认消息
this.socket.on(EAppSocketEventNames.myEvent, (payload: IMyPayload) => {
void this.backgroundApi.serviceNotification.ackNotificationMessage({
msgId: payload.msgId,
action: ENotificationPushMessageAckAction.arrived,
});
void this.backgroundApi.someService.handleEvent(payload);
});
通知系统
参见:references/rules/notification-system.md
通知模式:
| 模式 | 操作 |
|---|---|
| 1(页面) | 跳转到指定页面 |
| 2(对话框) | 显示对话框 |
| 3(openInBrowser) | 在外部浏览器中打开 URL |
| 4(openInApp) | 在应用内浏览器中打开 URL |
| 5(openInDapp) | 在 DApp 浏览器中打开 URL |
关键文件:
- 服务:
packages/kit-bg/src/services/ServiceNotification/ServiceNotification.ts - 工具函数:
packages/shared/src/utils/notificationsUtils.ts - 类型:
packages/shared/types/notification.ts
页面与路由
参见:references/rules/page-and-route.md
页面类型:
| 类型 | 描述 |
|---|---|
modal | 模态覆盖层页面 |
stack | 标签页路由页面 |
onboarding | 全屏引导页面 |
路由配置位置:
- 模态路由:
packages/kit/src/routes/Modal/router.tsx - 标签页路由:
packages/kit/src/routes/Tab/router.ts - 引导流程:
packages/kit/src/views/Onboardingv2/router/index.tsx
重要提示:
- ⚠️ 切勿删除页面——对于已弃用的路由,请使用重定向模式
- ⚠️ 整个应用中的路由路径必须唯一
- ⚠️ 在
navigation.navigate中始终使用pop: true
相关技能
/1k-coding-patterns- React 和 TypeScript 最佳实践/1k-architecture- 项目结构与导入规则/1k-state-management- Jotai atom 模式
评论
支持 Markdown