一、实验目标

1、掌握服务器域名配置和临时服务器部署;

2、掌握 wx.request 接口的用法。

二、实验步骤

(列出实验的关键步骤、代码解析、截图。)

  1. 和风天气API密钥申请

2.在微信小程序上配置服务器域名

3.创建项目并删除app.wxss、index.wxml、index.wxss、index.js中代码,删除log文件夹

4.app.json的代码

navigationBarBackgroundColor的设置使得导航栏的颜色为蓝色;

navigationBarTitleText为导航栏上所显示的文字;

navigationBarTextStyle设置导航栏上字体的颜色。

  "window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#3883fa","navigationBarTitleText": "今日天气","navigationBarTextStyle":"white"},

5.index.wxml的代码

使用pick、view、image、text、等组件,并通过{{}}进行数据动态绑定

<view class="container"><picker mode="region" bindchange="regionChange"><view>{{region}}</view></picker><text>{{weather_now.temp}}℃{{weather_now.text}}</text><image src='/images/weather_icon_s1_color/{{weather_now.icon}}.png' mode='widthFix'></image><view class="details"><view class="bar"><view class="box">湿度</view><view class="box">气压</view><view class="box">能见度</view></view><view class="bar"><view class="box">{{weather_now.humidity}}%</view><view class="box">{{weather_now.pressure}}hpa</view><view class="box">{{weather_now.vis}}km</view></view><view class="bar"><view class="box">风向</view><view class="box">风速</view><view class="box">风力</view></view><view class="bar"><view class="box">{{weather_now.windDir}}</view><view class="box">{{weather_now.windSpeed}}km/h</view><view class="box">{{weather_now.windScale}}级</view></view></view>
</view>

6.在wxss中对view、image、text进行渲染

.container{height: 100vh;display: flex;flex-direction: column;align-items: center;justify-content: space-around;
}text{font-size: 80rpx;color: #3c4f81;
}image{width: 220rpx;
}.details{width: 100%;display: flex;flex-direction: column;
}
.bar{display: flex;flex-direction: row;margin: 20rpx 0;
}
.box{width: 33.3%;text-align: center;
}

7.在index.js中编写逻辑结构

数据集部分包含城市信息和和风天气请求来的天气数据

 data: {region:['安徽省','芜湖市','镜湖区'],key: '79ab60ad0xxxxxxxxxx7a937',city: '',weather_now: {},future: {},twenty_four: {},indices: {},flag: false,latitude_value: 1,longitude_value: 12,weather_now:{temp:0,text:'NAN',icon:999,humidity:0,pressure:0,vis:0,windDir:'NAN',windScale:0,windSpeed:0}},

获取天气函数

regionChange:function(e){this.setData({region:e.detail.value});this.getWeather();},getWeather:function(){var that=this;wx.request({url: 'https://geoapi.qweather.com/v2/city/lookup', method: 'GET',data: {key: "de5f78a7692f44b0b82557436bfce090",location: that.data.region[1]  //这个就是前端输入的城市名},success: (res) => {console.log(res);// return res.data.location[0].idthis.setData({location: res.data.location[0].id  //提取返回结果中的id})// 获取locationid后,查询当前天气,在success中发起请求var location_id = this.data.location;// console.log(location_id);wx.request({url: 'https://devapi.qweather.com/v7/weather/now', method: 'GET',data: {key: "de5f78a7692f44b0b82557436bfce090",location: location_id},success: (res) => {console.log(res);this.setData({weather_now: res.data.now,flag: true})},});// 获取locationid后,查询天气指数wx.request({url: 'https://devapi.qweather.com/v7/indices/1d', method: 'GET',data: {key: "de5f78a7692f44b0b82557436bfce090",location: location_id,type: 3},success: (res) => {console.log(res);this.setData({indices: res.data.daily,flag: true})},});},})},
  • 程序运行结果

下图为不同城市的天气情况

四、问题总结与体会

在实验过程中,遇到最大的问题就是wx.request()请求中调用不了和风天气的数据,在查询和风天气开发者文档后发现,原教程中url地址已经不再适用,需要通过新的url地址才能获取数据,并且要使用和风天气所提供的另外一个url地址获得所在地区的locationID。

微信小程序制作天气查询系统相关推荐

  1. 微信小程序之天气查询小案例

    本次小项目是关于微信小程序-动态查询天气(墨迹天气Api) 此次案例分为以下几个准备方面: 一.准备方面: (1)如何发起请求?查看文档:RequestTask | 微信开放文档 (2)如何获取定位信 ...

  2. 基于微信小程序的教务查询系统的设计与实现

    目录 1 绪论 2 1.1 研究背景 2 1.2 教务查询系统的现状和发展前景 3 1.3 系统的技术架构 3 1.4 论文框架 4 2 系统需求分析 5 2.1 系统概述 5 2.2 系统功能需求 ...

  3. 【微信小程序】天气查询

    课程 中国海洋大学22夏<移动软件开发> 实验名称 实验2:天气查询小程序 一.实验目标 1.掌握服务器域名配置和临时服务器部署: 2.掌握 wx.request 接口的用法. 二.实验步 ...

  4. 毕业设计-基于微信小程序的档案查询系统

    目录 前言 课题背景与简介 实现设计思路 一.系统简介 二.系统需求与质量因素 目标用户需求 软件质量因素 三.系统整体结构 四.系统技术方案 实现效果样例 更多帮助 前言

  5. 医院挂号小程序,预约挂号小程序,微信小程序医院预约挂号系统毕业设计作品

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序医院预约挂号系统,前台用户使用小程序,后台管理使用基Java+MySql技术:通过后台设置医院信息.录入医院科室信息.录入医生信息 ...

  6. [附源码]计算机毕业设计springboot基于微信小程序的网络办公系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. (附源码)springboot基于微信小程序的校园外卖系统 毕业设计091024

    Springboot基于微信小程序的校园外卖系统 摘要 随着生活质量的日益改善以及生活节奏的日益加快,人们对餐饮需求的质量以及速度也随之发生着变化.为了满足社会需求,餐饮的高质量和快节奏也渐渐使电话订 ...

  8. JAVA微信小程序小说电子书阅读系统毕业设计 开题报告

    本文给出的java微信小程序系统毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序在线电子书阅读系统,前台用 ...

  9. 基于微信小程序的在线考试系统开题报告

      本科生毕业论文 基于微信小程序的在线考试系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业论文(设计)开题报告书 ...

最新文章

  1. 【廖雪峰python入门笔记】list_倒序访问
  2. 使用RecycleView实现无限滚动的日历
  3. 单臂路由实验-VTP
  4. 通过已有SQL语句,生成数据库模型PDM
  5. linux 安装centos7,linux CentOs7 安装 Autojump 方便高效省事-Go语言中文社区
  6. 一个应用程序和另一个应用程序apk文件信息
  7. 【链表】单链表的排序(归并排序)
  8. 【Vegas原创】红烧肉的做法
  9. controller调用controller的方法_【笔记】Simulink C语言代码生成与使用方法
  10. c语言实现作业调度先来先服务和短进程优先,先来先服务和高响应比优先调度算法C语言实现...
  11. HTML+CSS+JavaScript实现植物大战僵尸(附演示地址)
  12. 滴滴入局同城货运,一场闪电战,还是持久战?
  13. Steam如何打开控制台
  14. 电脑眼病和干眼症的相关知识
  15. 惠普HP DeskJet Ink Advantage 2777 驱动
  16. 南开大学计算机学院李越,李越 简历 - 名人简历
  17. 使用百度翻译api支持中转英,中简转中繁等等
  18. 签名文字头像PSD模板源文件打包3D艺术字贴图创意网红头像-李廷学
  19. python汉明距离检索_【LeetCode 461】汉明距离(Python)
  20. MySQL数据库入门实战教程

热门文章

  1. 基于js的火星坐标、百度坐标、WGS84坐标转换
  2. 启动jupyter notebook 报错:ImportError:DLL load failed,找不到指定模块的解决办法
  3. python图片切割与合并
  4. Intel芯片、AMD显卡有多强?M1系列呢?
  5. EXCEL解析:使用poi解析xlsx和xls后缀的excel文件
  6. 方框加对勾怎么输入_Word与Excel中,如何在方框中打对勾?
  7. 派克宇航获得AVIC涡轮螺旋桨支线飞机MA700的飞控作动系统合同
  8. oracle单列转行,oracle 两种列转行的方式
  9. 威纶通触摸屏与温控器进行MODBUS通信并通过宏指令将数据发送给PLC的具体方法
  10. 如何写好一篇优秀的硕士毕业论文