这是 Qwerty Learner 的微信小程序极简版本,专注于核心的打字练习功能。
- ✅ 打字练习 - 逐字母输入,实时校验
- ✅ 预设词典 - CET4、CET6 两个词典
- ✅ 自定义词典 - 用户可添加自己的词汇
- ✅ 错题本 - 自动收集错词,支持查看和删除
- ✅ 单词发音 - 调用有道词典 API
- 下载并安装 微信开发者工具
- 注册微信小程序账号(可选,使用测试号也可以)
- 打开微信开发者工具
- 点击「导入项目」或「+」号
- 选择项目目录:
qwerty-learner-mini - AppID 选择「测试号」(或填入你的 AppID)
- 点击「导入」
重要:由于 TabBar 需要图标文件,请按以下步骤操作:
暂时注释掉 app.json 中的 tabBar 配置:
// 在 app.json 中找到 tabBar 部分,暂时注释掉
/*
"tabBar": {
...
},
*/这样可以先运行起来,但没有底部导航栏。
-
准备 6 个图标文件(尺寸:81px × 81px):
typing.png/typing-active.pnggallery.png/gallery-active.pngerrors.png/errors-active.png
-
放入
images/目录 -
保持
app.json中的 tabBar 配置不变
快捷获取图标:
- 访问 iconfont.cn
- 搜索:键盘、书本、笔记本
- 下载 PNG 格式,调整为 81×81px
- 项目导入后自动打开模拟器
- 可以看到三个页面:
- 打字练习
- 词典选择
- 错题本
- 点击工具栏的「预览」按钮
- 用微信扫描生成的二维码
- 在手机上测试真实体验
Console 调试:
- 打开「调试器」→「Console」
- 查看日志输出
Storage 查看:
- 打开「调试器」→「Storage」
- 查看本地存储数据
Network 监控:
- 打开「调试器」→「Network」
- 查看 API 请求(发音接口)
- 默认进入打字练习页面
- 在输入框中逐字母输入单词
- 正确字母显示绿色 ✓,错误显示红色 ✗
- 点击 🔊 播放单词发音
- 输入错误的单词自动加入错题本
- 完成章节后可选择下一章或重新练习
- 点击底部「词典」标签
- 可选择 CET4 或 CET6
- 点击「选择章节」可跳转到指定章节
- 点击「+ 添加」可创建自定义词典
- 点击底部「错题本」标签
- 查看所有错词,按错误次数排序
- 点击 🔊 播放发音
- 点击 ✕ 删除单个错词
- 点击「清空」删除所有错词
-
在词典页面点击「+ 添加」
-
输入词典名称
-
按格式输入单词列表:
apple n. 苹果 banana n. 香蕉 -
点击「保存词典」
如果遇到问题,可以清除本地数据:
调试器 → Storage → 选中所有 → 删除
在 Console 中运行:
const dict = require('./utils/dict.js')
console.log(dict.getDictInfo('cet4'))确保:
- 开发者工具中「不校验合法域名」已勾选
- 或在小程序后台配置域名:
https://dict.youdao.com
在 typing.js 的 onInput 方法中添加日志:
console.log('输入:', input, '目标:', target)qwerty-learner-mini/
├── app.js # 应用入口
├── app.json # 全局配置
├── app.wxss # 全局样式
├── data/
│ ├── cet4.json # CET4 词典 (~488KB)
│ └── cet6.json # CET6 词典 (~471KB)
├── utils/
│ ├── storage.js # 本地存储
│ ├── audio.js # 发音播放
│ └── dict.js # 词典处理
├── pages/
│ ├── typing/ # 打字练习页
│ ├── gallery/ # 词典选择页
│ ├── errors/ # 错题本页
│ └── add-dict/ # 添加词典页
└── images/ # TabBar 图标
原因:网络请求域名未配置
解决:
- 开发阶段:勾选「不校验合法域名」
- 生产环境:在小程序后台配置
https://dict.youdao.com
原因:缺少图标文件
解决:
- 临时:注释掉
app.json中的tabBar配置 - 永久:添加 6 个图标文件到
images/目录
原因:JSON 文件较大(~1MB)
优化:
- 首次加载会稍慢,后续会缓存
- 可以考虑按需加载章节数据
现象:输入时候键盘遮挡
解决:
- 已设置
adjust-position="{{true}}" - 如仍有问题,可调整页面 padding-bottom
[
{
"name": "apple",
"trans": ["n. 苹果"],
"usphone": "ˈæpl",
"ukphone": "ˈæpl"
}
]settings- 用户设置custom_dicts- 自定义词典error_words- 错题记录progress- 学习进度
- 添加更多预设词典(分包加载)
- 学习统计图表
- 复习模式
- 云同步功能
- 虚拟键盘模式
MIT License
如遇到问题或有建议,欢迎反馈!