当前位置: 首页 > 后端技术 > Node.js

两天两个天气小程序

时间:2023-04-03 14:34:26 Node.js

经过两年多的发展,小程序的地位也逐渐变得越来越高。各平台相继搭建了自己的小程序平台。随着市场需求的不断增加,我们开发各种平台小程序的热情也被带动到高涨(奈)。选择uniapp进行开发。uni-app是一个使用Vue.js开发所有前端应用程序的框架。开发者编写一套代码,可以发布到iOS、Android、H5、各种小程序(微信/支付宝/百度/今日头条/QQ/钉钉)等平台。即使不是跨终端,uni-app也是一个比较好的小程序开发框架。来自官方。喜欢taro、wepy、mpvue的朋友不要批评我,每个人都有自己的喜好,大家开心就好。【知行天气】小程序效果图1.获取位置信息在定位功能上,本程序使用了腾讯地图和腾讯天气的API接口。需要在官网注册开发者账号,通过注册后获得的appKey进行请求。我们需要的资料,详细的注册步骤,请您自己动手吧。由于需要定位功能,所以uniapp的getLocation方法获取当前所在位置的坐标,然后对应到腾讯地图具体的城市。uni.getLocation({//#ifdefMP-WEIXINtype:'wgs84',//#endifasyncsuccess(res){const{latitude,longitude}=resconstresult=awaitthat.ajax({url:'https://apis.map.qq.com/ws/geocoder/v1',data:{location:`${latitude},${longitude}`,key:''}})let{province,city,district}=result.result.address_componentthat.getData(province,city,district)},fail(){uni.showModal({content:'检测到您没有开启定位权限,是否设置?',confirmText:"Confirm",cancelText:"Cancel",success:function(res){if(res.confirm){//#ifdefMP-WEIXINwx.openSetting({success:(res)=>{that.进来()}})//#endif//#ifdefMP-ALIPAYmy.openSetting({success:(res)=>{that.getIn()}})//#endif}}});}})2.查询天气获取城市名称后,使用城市名称查询天气接口,获取未来几天的天气预报。天气接口使用腾讯天气接口api。在小程序中使用前,需要在小程序设置界面,开发设置中添加request的合法域名。methods:{asyncgetData(province,city,district){constthat=thisconstdata=awaitthat.ajax({url:'https://wis.qq.com/weather/common',data:{source:'xw',weather_type:'observe|alarm|air|forecast_1h|forecast_24h|index|limit|tips|rise',province:province,city:city,county:district}})that.region=[省,市,区]if(data.status!=200){uni.showToast({title:result.message,icon:'none'});返回假;}if(!data.data.air.aqi_name){uni.showToast({title:'该地区没有天气信息',icon:'none'});返回假;}that.data=data.data}}3.小程序的界面没有美感,缺乏想象力,参考腾讯天气界面来做。功能很简单,查看当前地区的天气和切换其他地区的天气,查看最近24小时的天气情况和最近6天的天气情况,显示今天的农历时间。4.使用插件我想快速完成小程序的搭建。里面的折线图用的是uchart.js,因为兼容支付宝小程序和微信小程序,农历查询也是一个插件calendar.js。有歧义的问题,需要兼容。微信小程序有城市选择组件,支付宝没有城市组件可以直接使用,uniapp官方介绍:支持安装mpvue组件,但npm方式不支持小程序自定义组件(如vant-weappwxml格式),找一个支付宝可以使用的城市插件:mpvue-citypicker,城市选择组件快速搭建了汇总界面,提供了比较完整的组件和各种API2天气接口查询腾讯天气,需要过滤后才能使用。部分地区查询天气不返回,需要友情提醒先处理。第一个支付宝小程序遇到了很多坑,比如图表模糊,城市选择组件需要自己制作,消息提示框uni,支付宝不能用type字段等程序提交审稿比较快,我的大概申请了一天。但是支付宝审核比较慢,代码会放在https://github.com/galan99