本文是一篇水文,原文放在微信公众号
小栋STEM
上,原文链接在此。
默单词、真人发音、黑夜模式… 这篇文章水一下之前更新的几个比较重要的功能,具体可以扫描下方的小程序卡片进行体验:
小程序主页:法语记忆 学背单词动词变位
默单词模式
v3.5.0 (2020.3.20) 更新的主要内容:
- 增加了法语默单词模式。
之前有用户反馈(感谢这位用户的支持:阿弦)说想要加上手动拼写单词的功能,而且一直想在背单词这里加上看中文回忆法语的功能,于是这个功能正好在“隔离”期间上线了。后来想了想,界面和使用方式还是按照原来“学背动词变位”的那种模式:选择
。
背单词的入口页将开始学习改成了认单词
和默单词
两个按钮:其中认单词
是原来的看法文回忆中文模式而默单词
就是新增的入口了。大概的逻辑就是用户根据看到的释义来选择下方的字母
,如果全部拼对,那么将会自动判别正确并可以跳转下一个,反之则不行。其余的规则和认单词
相同,只要回答正确单词等级即加一。
清除
按钮将会清除全部已输入的内容。为什么不做成单格删除?我是这样想的:既然输错了,那就重新来一遍咯(所谓的加深印象 🤣)。
相关文章:微信小程序「法语记忆:学背单词动词变位」V3.5.0 更新:增加了默单词模式
真人发音
v3.4.0 (2020.3.2) 更新的主要内容:
- 增加了单词的真人发音。
Forvo
是一个免费的在线发音网站,全世界所有的人都可以通过该网站以自己的母语为词汇发音,并试听来自其他人为单词进行的发音和添加新的词语,就如它的口号那样:Forvo——发音指南,世界上所有词语的母语发音。
有道词典的发音据说就来自 Forvo。用户可以在除了商业用途之外使用这些音频文件,并且在 Forvo 上为注册用户提供了下载功能。虽然它提供了 api 服务,但是收费,所以 Python 又上场了:和之前使用的 BeautifulSoup 不同,BeautifulSoup
爬取比较快速,适合提取网页文本信息(* 没用过完整功能,表述可能不合适);而 Selenium
可以调用浏览器进行爬取,自动化及动态操作,这里主要用它模拟鼠标点击和初期模拟登录,但其速度比较慢。简单来说,就是把 Selenium
当作一个鼠标精灵。
在微信小程序端:最简单的代码就是直接获取小程序云存储的音频文件链接即可播放单词音频,但是实际操作中发现一些问题:获取一个单词音频大概需要消耗流量 10kb 左右,若用户没有听清则需要反复获取该单词发音。这样的话 5GB 的云存储 CDN 流量其实用的挺快的(虽然目前用户很少 🤣)。
所以为了节省 CDN 流量和用户的数据流量:就将音频下载为临时文件
,然后在当前页面第二次及以上播放时(比方说听一遍没听清)播放临时链接。在进入下一个页面时理论上会自动销毁临时音频文件,下次遇见再次从云端获取。
相关文章:微信小程序「法语记忆:学背单词动词变位」V3.4.0 更新:增加了 Forvo 真人发音
黑夜模式
v3.3.0 (2019.12.24) 更新的主要内容:
- 增加了黑夜模式。
- 优化了部分界面和功能。
黑夜模式的颜色参考基本上是参考 ios13 的配置。反正这里用了最简单粗暴的方式,直接截屏然后取色,取完的颜色 hex 值如下:
- #000000 底层背景
- #1C1C1E 次要背景(比如说块状模块)
- #9A999E 图标和次要文字(副标题或者正文)
- #FEFEFF 主要文字(标题或者需要突出显示的文字)
- #F93A5B 选中后的图标(彩色,以 apple music 为例)
然后就模仿着上述的配色将小程序的配色进行更改,其中原本的按键什么的没有经过重新的颜色调整,在这一版中还是维持白色模式的颜色。要增加黑色模式,实质上就是进行“主题换肤
”。
加上黑夜模式之后,也带来了一系列问题。之前由于将每一个设置都是分开来储存的,所以这样比较难管理和修改。于是这一次将所有设置的结果都保存到了一个 js 对象中。此外,这样写的黑夜模式会带来一个严重的问题,就是“闪屏”(极短时间的白屏)。
在其他界面闪屏都没有太大关系,但是在背单词的界面尤为明显,严重影响背单词。要解决这个问题,那就把所有的东西都放在同一个页面上,然后通过不断地更新这个页面而避免页面间跳转、重新判断 dark_mode 是真是假所带来的白屏。