我的第一个微信小程序

1.微信小程序介绍

  介绍:这个小程序是我的一个练手的小项目,主要的功能包括纪念日和天气查询,代码地址:https://github.com/Jin0811/WeChatApp.git
  纪念日功能可以允许用户创建纪念日和删除纪念日,用户输入名称并选择时间,当选择过去的日期时,点击添加后,会显示已经过去了多少天,当选择未来的时间时,点击添加后,会显示还有多少天。在添加完成纪念日后,用户也可以选择删除纪念日。
  天气查询功能可以为用户提供天气信息,当用户授权后,可以获取到用户所在的位置,并查询天气,当然,用户也可以自己选择全国范围内的省市区来查询天气。

2、页面展示

3、制作微信小程序时的一些心得
主界面
  1. 如果需要获取到用户的公开信息,可以使用open-data,不同的type值代表着不同的信息,open-data不需要经过用户的授权。userAvatarUrl代表用户的微信头像,userNickName代表用户的微信昵称,其他的type值可以查阅微信小程序的文档。

    <open-data type="userAvatarUrl"></open-data>
    <open-data type="userNickName" lang="zh_CN"></open-data>
    
  2. 如果想要给小程序添加一个背景图片,在wxss中,是不能使用background-image:url(图片路径)的方式来为一个界面添加背景图片,而是要先将背景图片转换为Base64,再将Base64编粘贴到括号内,就可以设置背景图片啦,可以使用http://imgbase64.duoshitong.com/这个网站进行图片的转换。
    background-image: url("图片路径"); /*该方式不能设置背景图片*/
    background-image: url("图片的Base64编码");/*该方式可以设置*/
    
纪念日界面

  微信小程序页面主要的地方在JS代码中,有几个需要注意的地方:

  1. 时间的转换问题
      纪念日最重要的地方是时间的转换,而时间又分为过去的时间和未来的时间,这个时候就需要使用判断,来判断用户输入的时间是过去的还是未来的,如果是过去的时间,就显示已经过去了多少天,如果是未来的时间,就显示还有多少天。
      这个地方,需要用到是date对象,时间戳以及时间的取正。我采用的方式是,分别获取到用户选择的日期和今天的日期,都转换为日期戳,今天的日期戳减去用户选择日期的时间戳,再进行取正。
  2. 本地缓存问题
      用户创建了纪念日,肯定是不希望下次打开页面时,显示的是一片空白,这时候就需要用到微信的本地缓存,将用户输入的纪念日和日期储存起来,每一次打开页面时,都加载缓存中的数据。
  3. 需要注意的是,日期的转换需要进行两次,页面打开时,转换一次,用户添加时转换一次。如果页面打开时不更新的话,那么日期就不会自动更新,还是以用户输入的那天为准,所以需要再onload中进行一次转换。
  4. 删除纪念日
      我的做法是在进行本地缓存的时候,将用户添加时的时间戳也储存下来,作为该纪念日区别与其他纪念日的id。但是我这种方式有一个bug,这个bug就是如果两个纪念日的日期相同,那么他们的id就是一样的,因为我的时间戳只到天,并没有精确到毫秒,解决方法可以考虑将用户选择日期那一刻的时间戳,精确到毫秒作为纪念日的id。
天气界面

  天气界面我是跟着b站的一位up主的视频做的,原本只想做一个纪念日的小程序,但是提交审核时一直无法通过,提示小程序的类别不正确,无法通过审核。
  后来查看类别,发行工具类别中有一个天气查询的页面,我就添加了一个天气查询页面,才通过的审核。我写的可能也不是很直观,大家对天气查询感兴趣的可以去b站搜一些天气查询相关的小程序,看视频可能会更好一些。

  1. 天气查询使用的是和风天气的API,分为商业版和免费版,如果只是做一个自己的微信小程序,不为盈利的话,使用免费的就可以啦,注册一下,创建项目,获取到自己的key。
// 通过获取picker的value,省市区,来获取天气getWeatherByAddress: function () {var that = this;// console.log(this.data.region);wx.request({url: 'https://free-api.heweather.net/s6/weather/now?',data: {location: that.data.region[1],key: 'ec8a14c1a3534a34ae28237e12c71d83'},success: function (result) {// console.log(result.data);that.setData({now: result.data.HeWeather6[0].now,})},})},

  这个函数是根据picker中用户选择的省市区来查询天气的,所以需要设置一个picker。

  1. 天气查询页面的一个难点在于,怎么获取到用户的位置,使得用户开始页面时,显示的就是用户所在位置的天气,我的想法是通过wx.getLocation来取得用户所在位置的经度和纬度,使用经度和纬度来查询用户所在位置的天气。
  // 通过经度和纬度来获取天气// 两个参数分别为经度和纬度getWeatherByLongAndLat: function (longitude, latitude){var that = this;wx.request({url: 'https://free-api.heweather.net/s6/weather/now?',data:{location: longitude + "," + latitude,// that.data.region[1]key:'ec8a14c1a3534a34ae28237e12c71d83'},success:function(result){// console.log(result.data);let province = result.data.HeWeather6[0].basic.admin_area;let city = result.data.HeWeather6[0].basic.parent_city;let location = result.data.HeWeather6[0].basic.location;var addressArray = [province, city, location];wx.setStorage({key: 'address',data: addressArray,});that.setData({now: result.data.HeWeather6[0].now,region: [province, city, location],})},})},
总结

  这个微信小程序的介绍就到这里啦,只是大概地讲解了一下,完整的代码和图片放在了我的GitHub上。地址:https://github.com/Jin0811/WeChatApp.git
  喜欢的可以去看看,给个小星星,也欢迎大家跟我交流呀~

纪念日和天气查询微信小程序相关推荐

  1. 【附源码】Java计算机毕业设计计算机配件价格查询微信小程序(程序+LW+部署)

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

  2. 可运营快递查询微信小程序源码

    小程序源码说明 快递查询微信小程序源码,无需要数据库,内置天行数据API接口,大家也可以自行更换接口,搭建即可直接运营. 源码搭建教程 1. 去微信公众平台注册小程序 2. 下载微信开发者工具 3. ...

  3. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  4. 星座运势查询微信小程序源码 周公自定义解梦源码

    源码介绍 这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 ...

  5. 十二星座运势查询微信小程序源码

    不错,这是一款星座查询小程序 该款小程序支持分男女查询 支持给综合运势,爱情运势,事业运势,财富运势等等打星 支持每种运势解说,支持查看特点等等功能 另外该款小程序还支持提前查看明日往后日子的运势 总 ...

  6. 十二星座运势查询微信小程序源码支持多流量主提前查看

    不错,这是一款星座查询小程序 该款小程序支持分男女查询 支持给综合运势,爱情运势,事业运势,财富运势等等打星 支持每种运势解说,支持查看特点等等功能 另外该款小程序还支持激励视频提前查看明日往后日子的 ...

  7. 小程序源码:十二星座运势查询微信小程序

    不错,这是一款星座查询小程序 该款小程序支持分男女查询 支持给综合运势,爱情运势,事业运势,财富运势等等打星 支持每种运势解说,支持查看特点等等功能 另外该款小程序还支持激励视频提前查看明日往后日子的 ...

  8. 微信小程序:王者荣耀战力查询微信小程序源码下载支持安卓苹果微信QQ等多区查询

    这是一款战力查询的微信小程序源码 源码内自带了接口 目前支持了微信,QQ,苹果,安卓全区都可以查询 支持流量主收益,而且搭建安装简单 使用微信开发者工具打开源码然后设置一下合法域名上传审核即可 该小程 ...

  9. 北京实时公交查询微信小程序

    目录 实现效果 源代码 实践报告 摘要 概述 题目的背景及研究意义 本系统主要研究内容 系统需求分析 公交路线查询模块需求分析 附近公交站点信息查看模块需求分析 公交实时信息查看模块需求分析 实时公交 ...

最新文章

  1. 用matlab编辑器打开.m文件
  2. setDrawingCacheEnabled(boolean flag)
  3. CF1101D GCD Counting
  4. python获取当前网页元素_Python+Selenium练习(三十)- 获取页面元素的href属性
  5. VS2010 代码前出现虚线的问题
  6. mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)
  7. 《深入Ajax架构和最佳实践》读书笔记
  8. java基础的知识_Java基础知识点(一)
  9. IntelliJ IDEA 2020.1 首个稳定版重磅发布!
  10. nexus build docker private registry
  11. 操作系统原理实验(五) 内存管理
  12. 百度站长俱乐部SEO提问收集-7
  13. 中国区边界shp文件以及STRM 90m DEM分享(百度云免费下载链接)
  14. DAS、NAS、SAN简介以及区别
  15. Android Studio模拟器如何运行apk文件
  16. Android 自动换行添加控件
  17. ASCII-from baidubaike
  18. .NET Framework各个版本(4.5)
  19. Windows编程——读写锁
  20. 阿里云dns 接口调用/代码

热门文章

  1. i513400和13400f区别 i5 13400和i5 13400f选哪个好
  2. linux bonding 技术
  3. 到哪下c语言编译器,在那里可以下载到C语言的编译器
  4. 体育考试改革这是学校体育一项大胆的改革尝试
  5. Android AOP编程(五)——Gradle插件+TransformAPI+字节码插桩实战
  6. Hive join 优化实战
  7. 限制儿童使用计算机,win7设置控制孩子的上网时间不让他一直在玩电脑
  8. 13款宝马x5质量到底怎么样_这是最坏的时代!——关于美规宝马X5的13款和14款纠结的中肯建议...
  9. 2021盘点:国内外10大低代码开发平台
  10. 定制网站制作的流程详解