本节介绍如何搭建基础的开发环境。
- 命令行执行:
https://github.com/project-yui/Yui.git - 进入项目:
cd Yui - 安装npm包:
pnpm install
- 执行
pnpm run yui:install - 执行
pnpm run yui:dev - 执行
pnpm run yui:nodestart
- 执行命令
pnpm run yui:dev,开始监听并编译 TypeScript - Node 运行入口会构建到
program/index.js - 启动无 UI 界面的 Yui,执行
pnpm run yui:nodestart - 启动有 UI 界面的 Yui,执行
pnpm run ui:start - 启动有 UI 界面并保存日志的 Yui,执行
pnpm run ui:start-log-file(分析接口行为使用)
- 修改ts代码会自动编译
- 要应用更新需要关闭QQ,重新启动
- 有时代码错误导致QQ崩溃,需要在任务管理器中杀掉进程
此处以获取好友列表为例
-
打开QQ界面
-
点击 联系人 -> 好友管理器
-
使用好友名称搜索日志
-
观察日志:
-
可以发现,它先注册一个
onBuddyListChange的订阅;然后,发送
getBuddyList触发这个订阅;最后,产生了一条不带callbackid的推送。
相关代码在:getFriendList
- 通过
sendEvent先订阅onBuddyListChange事件 - 再通过
registerEventListener注册一次性的好友列表变更事件onBuddyListChange,用来接收推送 - 最后,通过
sendEvent发送getBuddyList操作触发好友列表变更事件
相关代码在:friendActionHandlers
当前动作注册已经迁移到 src/app/** 下的薄注册层中,通过 action handler map + registerActionHandlers 的方式统一完成注册。
