早上起床,我不想去想昨天的气温,只想知道今天比昨天是热还是冷,这样才能适当增减衣服。穿衣指数根本不适合我,污染指数也没用,我能不去上班吗?
所以我需要一个天气应用程序,可以告诉我今天的天气和昨天的天气的对比。
历史天气接口很难找,我花了几个小时搜索了国内外几十个天气API,但是找到的历史天气查询很少,而且有些还是收费的,不过免费的天气预报接口还是挺多的。
为了一个很少有人用的小程序去花钱买接口,实在是太奢侈了,这时我想到了一个绝妙(愚蠢)的方法:查询完今天的天气后,缓存起来,明天查看的时候,就有了昨天的天气!
去做就对了。
1. 注册小程序
在小程序注册入口填写基本信息后,验证邮箱、微信,即可登录管理后台。
在管理后台填写小程序名称、介绍、头像,小程序码就会自动生成。
你可以在开发设置页面看到(小程序ID),记住这个。
2.使用微信开发者工具
微信开发者工具在这里下载,下载后用微信扫描二维码打开,创建项目,需要填写刚才的信息。
假设你已经了解微信开发的基础知识,代码应该具有类似的结构。
3.获取位置信息
(注:禾丰天气支持按经纬度查看天气,第3步为可选)
要预报当地的天气,需要知道你的位置,微信小程序有wx.可以获取经纬度。
wx.getLocation({ type: 'wgs84', success: function(res) { var latitude = res.latitude var longitude = res.longitude var speed = res.speed var accuracy = res.accuracy } })
4. 查看天气
使用经纬度天气查询接口,获取未来三天的天气预报。
天气接口用的是合风天气。合风天气的接口比较简洁,返回值也有中文说明,可以直接显示。免费版的天气信息已经足够了。历史天气接口是需要付费的,所以我们先用免费接口。
同上,使用该接口需要先注册一个开发者账号,并验证你的手机。
在小程序中使用之前,需要在小程序设置界面和开发设置中添加合法的域名: 。
wx.request({ url:'https://free-api.heweather.com/s6/weather/forecast', data:{ location:location, key: '和风天气开发者密钥', rnd:new Date().getTime() // 随机数,防止请求缓存 }, success:function(res){ console.log(res); } })
获取天气后缓存在本地,最多只保存两天的记录。
5.美化前端界面
对于前端程序员来说,设计一个炫酷的界面有点难,但是基本的美观度还是有的。
使用关键字“app”在搜索引擎中搜索图片,你会看到一个看上去很舒服的界面,借用一下配色方案。
我在搜索结果里还发现了一个可爱的logo,而且是免费的!只有一个要求,就是使用时显示这个网站的链接。因为是小程序,所以不能外链。我把网站地址以文本形式放上去,就是这个。
已完成的界面。
晚上再次优化了代码,12点左右做了一些测试,修复了几个问题,就提交审核了。
6. 测试小程序
即使对于这么小的项目,测试也是必不可少的。
经过测试发现,鹤峰天气的返回值是未来三天的天气数组,12月7号晚上调用它返回的结构和API是一样的,包含了[12-7,12-8,12-9]天的天气。
禾丰气象界面测试
7. 批准
8点的时候我又检查了一下,上面的API问题不会对程序造成影响,一个小时后审核通过了。
看完之后,我兴奋地发给朋友试用,现在发现一个重要问题:如果哪天不打开,第二天就没有昨天的天气了,每天都要打开!真希望有个免费的历史天气界面,哪怕只是昨天天气的简化版。
大家如果想尝试一下,可以微信搜索“昨日天气”小程序,如果这方面需求量很大的话,我可能会考虑购买付费的历史天气接口。
后记
在对比了各家公司的费用后,我购买了新知天气的付费接口,现在网络版已经去掉了缓存部分,可以直接调用接口查询昨天的天气。
相关链接
小程序注册
小程序开发工具
了解天气
经过