微信小程序+和风天气完成天气预报

《冷暖自知》天气小程序

学无止境,以玩儿玩儿的心态去学习!

前一天晚上写的,写的不太好,第二天马上修改了,如有差错,请多指教。

花半天时间完成简单的小程序应用。适合小程序初学者。

步骤:

  1. 申请小程序帐号: 小程序注册入口, 具体操作按照官网步骤执行,相信你会看的很明白的(-
  2. 安装微信开发者工具,打开工具填写信息:①项目目录为自己要开发小程序的位置②AppId在微信管理后台的设置-开发设置中③项目名称自己起,填写完成点击完成;
  3. 看到默认的初始小程序Hello Horld是不是很兴奋,以上步骤不是我们今天研究的重点,下面进行我们的关键:
  4. 在index.wxml中写我们的结构,index.wxss中写css样式,在index.js中写我们的逻辑内容。前提是要有css3和javascript的基础哦!!!
  5. 在index.js中定义两个方法:getLocation()获取用户的地理位置,getWeather()获取天气的方法;
  6. 和风天气提供免费天气接口(无偿打广告,哈哈~~),免费版只能获取3天的天气情况,开发文档

废话不多说,直接上代码~~~

代码

index.wxml部分

<!--index.wxml-->
<view class="container">
  <view class="weather yesterday">
    <view>
      <view class=‘date‘>今天</view>
      <view class=‘location‘>{{basic.location}}/{{basic.parent_city}}</view>
      <view class=‘tmp‘>{{today.tmp_min}}℃~{{today.tmp_max}}℃</view>
      <view class=‘cond_txt‘>{{today.cond_txt_d}}</view>
    </view>
    <view>
      <view class=‘weather_icon‘>
        <image src=‘{{todyIcon}}‘></image>
      </view>
      <view class=‘lastUpdateDate‘>最后更新:{{update}}</view>
    </view>
  </view>
  <view class="weather today">
    <view>
      <text>明天</text>
       <view class=‘location‘>{{basic.location}}/{{basic.parent_city}}</view>
      <view class=‘tmp‘>{{tomorrow.tmp_min}}℃~{{tomorrow.tmp_max}}℃</view>
      <view class=‘cond_txt‘>{{tomorrow.cond_txt_d}}</view>
    </view>
    <view>
      <view class=‘weather_icon‘>
        <image src=‘{{tomorrowIcon}}‘></image>
      </view>
      <view class=‘lastUpdateDate‘>最后更新:{{update}}</view>
      </view>
  </view>
  <view class="weather tomorrow">
    <view>
      <text>后天</text>
       <view class=‘location‘>{{basic.location}}/{{basic.parent_city}}</view>
      <view class=‘tmp‘>{{afterTomor.tmp_min}}℃~{{afterTomor.tmp_max}}℃</view>
      <view class=‘cond_txt‘>{{afterTomor.cond_txt_d}}</view>
    </view>
    <view>
    <view class=‘weather_icon‘>
        <image src=‘{{afterTomorIcon}}‘></image>
      </view>
      <view class=‘lastUpdateDate‘>最后更新:{{update}}</view>
    </view>
  </view>
</view>

index.wxss部分

/**index.wxss**/
.container {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 10px 15px;
  box-sizing: border-box;
}
.weather{
  height: 110px;
  width: 100%;
  margin-bottom: 10px;
  border-radius: 5px;
  color: #FFF;
  padding: 5PX 15px;
  display: flex;
  font-size: 14px;
  box-sizing: border-box;
}
.weather>view{
  flex: 1;
}
.weather>view>view{
  margin: 5px 0;
}
.yesterday{
  background-color: #30BCAF;
}
.today{
  background-color: #78A4be;
}
.tomorrow{
  background-color: #FCB654;
}
.location,.cond_txt{
  font-size: 14px;
}
.date,.tmp{
  font-weight: bold;
}
.weather_icon{
  text-align: center;
  height: 65px;
}
.weather_icon image{
  width: 75px;
  height: 100%;
}
.lastUpdateDate{
  font-size: 10px;
  text-align: center;
}

index.js部分

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    update: ‘‘,
    basic:{},
    today:{},
    tomorrow:{},
    afterTomor:{},
    todyIcon:‘../../imgs/weather/999.png‘,
    tomorrowIcon:‘../../imgs/weather/999.png‘,
    afterTomorIcon:‘../../imgs/weather/999.png‘
  },
  onShow: function () {
    this.getLocation();
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: ‘../logs/logs‘
    })
  },
  getLocation:function(){
    var that = this;
    wx.getLocation({
      type: ‘wgs84‘,
      success: function (res) {
        var latitude = res.latitude
        var longitude = res.longitude
        that.getWeatherInfo(latitude, longitude);
      }
    })
  },
  getWeatherInfo: function (latitude, longitude){
    var _this = this;
    var key = ‘‘;//你自己的key
    //需要在微信公众号的设置-开发设置中配置服务器域名
    var url = ‘https://free-api.heweather.com/s6/weather?key=‘+key+‘&location=‘ + longitude + ‘,‘ + latitude;
    wx.request({
      url: url,
      data: {},
      method: ‘GET‘,
      success: function (res) {
        var daily_forecast_today = res.data.HeWeather6[0].daily_forecast[0];//今天预报
        var daily_forecast_tomorrow = res.data.HeWeather6[0].daily_forecast[1];//明天天预报
        var daily_forecast_afterTomor = res.data.HeWeather6[0].daily_forecast[2];//后天预报
        var basic = res.data.HeWeather6[0].basic;
        var update = res.data.HeWeather6[0].update.loc;//更新时间
        _this.setData({
          update:update,
          basic:basic,
          today: daily_forecast_today,
          tomorrow:daily_forecast_tomorrow,
          afterTomor: daily_forecast_afterTomor,
          todyIcon: ‘../../imgs/weather/‘ + daily_forecast_today.cond_code_d+‘.png‘, //在和风天气中下载天气的icon图标,根据cond_code_d显示相应的图标
          tomorrowIcon: ‘../../imgs/weather/‘ + daily_forecast_tomorrow.cond_code_d+‘.png‘,
          afterTomorIcon: ‘../../imgs/weather/‘ + daily_forecast_afterTomor.cond_code_d+‘.png‘
        });
      }
    })
  }
})

效果

大功搞成,这样就有了自己的天气预报了,天气变冷,大家注意身体哦,身体是革命的本钱!!!

原文地址:https://www.cnblogs.com/huiwenhua/p/8380276.html

时间: 2024-11-02 09:28:05

微信小程序+和风天气完成天气预报的相关文章

微信小程序获取国外今日天气预报信息接口

使用天气API的国外今日天气预报接口制作 返回json预览 { cityid: "601010100", city: "堪培拉", cityEn: "Canberra", country: "澳大利亚", countryEn: "Australia", update_time: "2019-04-24 18:00:00", wea: "晴", wea_img: &qu

微信小程序-整理各种小程序源码和资料免费下载

微信小程序整理下载 [小程序源码]微信小程序-车源宝微信版 [小程序源码]小程序-微赞社区(论坛demo) [小程序源码]微信小程序-收支账单 [小程序工具]微信小程序-日历 [小程序源码]小程序-在线聊天功能 [小程序源码]微信小程序-大好商城(新增功能天气查询和2048游戏) [小程序源码]微信小程序-查询号码归属地 [小程序源码]微信小程序-备忘录2 [小程序源码]微信小程序-QQ音乐 [小程序源码]小程序-货币汇率 [小程序源码]微信小程序-大学图书馆 [小程序源码]小程序-积分商城 [

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序实战之天气预报

原文:微信小程序实战之天气预报 这个案例是仿UC中天气界面做的中间也有点出入,预留了显示当前城市名字和刷新图标的位置,自己可以写下,也可以添加搜索城市.值得注意的是100%这个设置好像已经不好使了,可以通过获取设备的高度通过数据绑定设置高度.地址:https://github.com/shuncaigao/Weather 界面主要分为四部分: 第一部分 这里是预留的一块可以自行添加补充下 <view class="newTopView"> <!--左边添加当前城市名字

动手开发一个名为“微天气”的微信小程序(上)

引言:在智能手机软件的装机量中,天气预报类的APP排在比较靠前的位置.说明用户对天气的关注度很高.因为人们无论是工作还是度假旅游等各种活动都需要根据自然天气来安排.跟着本文开发一个"微天气"小程序,方便微信网友随时查看天气.接下来两天小编将同您一起开发一个"微天气"小程序,本文首先向大家介绍"微天气"的API与界面代码编写.本文选自<从零开始学微信小程序开发>. 在一套软件系统中,微信小程序通常是作为前端来使用的,一般还需要有后端的系

微信小程序开发(1) 天气预报

本文介绍如何使用微信小程序开发天气预报功能. 一.项目文件列表 二.小程序配置 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. { "pages":[ "pages/index/index" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgrou

两天撸一个天气应用微信小程序

这是一个完整的已经线上运行的天气应用小程序,点击可查看源码,可随意 star.也可以扫描下方的小程序码直接体验. 效果图: 说明 鸣谢:pure 天气 APP:首页样式借鉴了 pure天气 APP.如侵删. 数据来源 地理编码.天气数据均来自百度地图开放平台.个人开发完全免费,有对应的小程序 sdk,加入即可,但是返回的天气数据较少. 运行前准备 注册微信小程序,获取 appid 注册百度地图开放平台开发者,创建应用,获取 ak(其他配置自行查看) 在 app.js 中替换 globalData

微信小程序案例之天气预报

 前言 这俩年微信小程序特别火,就抽空在网上找了个天气案例自己学习了下,这个案例稍微做了些调整,所以就和大家一起分享下吧~~~~~. 小程序案列本人参考网址:https://www.cnblogs.com/demodashi/p/8481610.html 步骤 1.注册微信小程序. 2.注册和风天气账号. 3.注册百度地图开发平台应用. 4.微信小程序平台设置合法request域. 5.微信工具开发编码实现. 6.微信小程序平台提交审核发布. 一.准备工作 1.注册微信小程序 注册微信小程序账号