首发于公众号 iKeepLearn
#0
English Podcast (原 BBC English Podcast)一直没有怎么维护。最近刚好有时间,就登录后台看看用户反馈。有没有什么值得更新的。其中呼声最高的就是希望加入翻译功能。所以就先实现这一点吧。
#1
确定需求后,就先搜一下其他小程序,看看他们实现的效果。中国日报社和微信研究院联合推出的每日英文电台就刚好有这个功能。试了一下效果不错。所以这个需求点是可实现的。
那怎么实现呢?毕竟小程序里面不像网页和 APP 那样支持长按选择文字并弹出自定义菜单项,官方支持选择文字的就 text 组件。但没有相关的 api 去获取选定的内容?
在搜索了一圈后也没有找到很好的实现,那就只好自己来实现。
#2
思考了一下,只有用常见的支持绑定点击事件的 view 了。思路是先把英文句子按单词分割,然后每一个单词绑定相应的事件。这样就能获取点按的单词了,再调用接口去获取翻译内容。
所以数据结构按这样设计
思路确定后,相关编码就很简单了。
wxml文件和wxss文件
#3
在找翻译接口的时候,有谷歌,必应、百度和有道作为备选。最后思考了一下还是选了微信官方的接口。这样可以避免关键字检测?
本来在微信服务市场找到的英中翻译接口是最适合需求的,因为不需要服务器调用可以直接在小程序客户端里使用。只是按文档接入后提示出错了。只好选择多语言翻译接口。
#4 最后可以扫码下方的小程序体验点按翻译
您好,请问这里如果不用view渲染,用text组件,是否可以实现选择某个单词高亮啊