我的第一个微信小程序

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. python有时候没有智能提示_python没有报错提示
  2. BUUCTF(pwn)inndy_echo(32位格式化字符串修改got表)
  3. 缓存系统中的三座大山
  4. mysql 热备 windows_windows下mysql热备
  5. Spring Security可以做的十件事
  6. python程序打包时出现lib not found_pyinstaller打包py脚本Warning:lib not found等相关问题...
  7. 钟南山:疫情1周或10天左右达到高峰,不会大规模增加了!
  8. csh shell_一篇文章从了解到入门shell
  9. kong网关从入门到精通_可能国内最好的网关开源项目,支持 Dubbo、SpringCloud,经历多年双11高并发的场景验证
  10. android手机存储速度慢,安卓内存泄露后台应用被迫关闭、系统速度慢的解决方法...
  11. java 模拟停车_Java多线程编程小实例模拟停车场系统
  12. linux 循环小时,shell脚本日期遍历(按天按小时)
  13. matlab仿真建模,matlab系统建模仿真.ppt
  14. WinRAR的命令行模式用法介绍
  15. Java实现两个csv文件的对比_比较 csv 文件中数据差异
  16. 2020年度中国雇主榜发布;全球发布商用5G移动宽带网络数量已达109个 | 美通企业日报...
  17. 智能家居APP使用指南
  18. 448. Find All Numbers Disappeared in an Array -- Python
  19. Java GC机制
  20. 植物大战僵尸java版视频_Java小项目之:植物大战僵尸,这个僵尸不太冷!

热门文章

  1. 杰理之二代手表智能手表方案硬件框架【篇】
  2. 【目标跟踪】算法C-COT中文翻译
  3. Netapp大概简介(一)
  4. outlook 2007 企业邮箱使用教程
  5. 华为小程序怎么弄出来_抖音死亡计算器怎么弄 抖音生命计算器在哪里用
  6. 奇迹MU开服服务端租用服务器架设搭建
  7. 11 银河麒麟操作系统的安装
  8. 使用Python多线程犯的错误总结
  9. 为什么纽曼蓝牙耳机连接不上手机
  10. [驱动][转载] 使自己的驱动无法卸载(包括Xuetr)