微信小程序笔记二:天气应用
前言
本项目更多是对小程序的一个实验,已经上线。在小程序搜索“小好天气”,或者扫描下方二维码,或者在本人公众号的实验室专栏即可查看该应用。
小好天气构思
查询用户位置的天气
我的构思非常简单,主体的功能是做一款基于位置的天气预报的程序,利用的是免费的气象预报api接口(就此说明一下本项目主要采用的是心知天气的接口)。小程序可以获取用户的位置数据,通过位置信息来查询该城市的天气信息。最终的实现效果是让全国各个城市的人查询到自己城市的天气信息。
与此同时,问题也来了,在调用微信小程序定位服务的过程中,只会返回坐标位置,并不会返回城市信息。由于天气状况的查询是根据城市的信息来查询。这是我们需要进行一次“将坐标转换成为城市名称”的反地址编码转换(这里说明一下本项目采用的是高德地图的接口)。
自定义城市
辅助的功能是根据用户本地缓存的用户信息,每个用户可以自定义自己所选的城市。由于每个用户的信息不同,这需要使用到小程序的缓存功能。
该功能在v1.1.0版本已经实现,只满足包括北京,上海在内的27座城市天气的切换,默认是北上广深四座城市。
自定义语言
自定义温度单位
考虑到项目已经是国际化的,温度单位也要兼容华氏度,加入在设置界面加入了华氏度和摄氏度的切换。
缓存
考虑到小程序的渲染效率。我对天气预报的数据更新的频率进行统计。小程序在渲染的过程中优先读取缓存数据。过时则重新获取数据。
跨页面事件调用
界面
界面总结
小程序开发的最基本流程可以归纳为下图。
小程序开发流程关于小程序的一些思考
优缺点
经过一番的“小程序”体验后,说说它的优缺点:
-
优点
- 接口完整度高
- 极其容易上手,如果有vue经验的工作者更佳
-
缺点
- 缺乏第三方库支持,不能用包管理工具
- 很其他框架缺乏通用性,想转成web app非常麻烦
- css语法没有扩展sass等
总体用下来,wx.request
和wx.login
等接口给人一种似曾相识的感觉,但是小程序有诸多的限制,可说明了它的不成熟性。
有人说微信有野心做成一款wechatOS,但是我觉得还是不太可能。从两个方面,第一,不是所有厂家愿意重新写一款应用去满足现有的功能。因为小程序对用户的“黏度”不大,还不如自己开发一款App,满足ios和安卓的用户。往往小程序不过成为“试验品”或者是“玩具”,不过是一款简化版的应用。第二,代码并不具备通用性,代码不能重复用于网页版当中。同时,其扩展性也非常差,就像少了几个“键”的键盘,用的时候会捉襟见肘。所以,这样引发了关于小程序和PWA之间的讨论。
注意
由于高德地图和心知天气的key是个人开发者的key,如果你需要fork,请自行更换key。
欢迎关注我的微信公众号。
请关注我的微信公众号