微信小程序的开发—日历小记

457 阅读5分钟

日历小记微信小程序(后面简称为“小记”)是一个用于比较长久的事物的备忘录,比如生日、纪念日等,需要保持联系的朋友比较多,这种情况下需要有个东西做记录,日历小记正是从这个需求点出发而开发出来的。8.8上线第一版,中间自己完善了两三个版本,8.17开始发朋友圈简单推了一下。

功能上以日历备忘录为主,附带的有阴历、老黄历、星座、生日分享等功能,尽可能覆盖用户平时对日期相关的需求,后面还会逐步完善服务号的定向推送和短信提醒等业务。

日历小记本身没有太复杂的业务逻辑,UI也为了保证简洁,整体的交互不复杂,因为整个开发都是笔者一个人加班写的,所以这里拿出来作为一个小案例,分享一下开发过程中的一些经验和遇到的问题。

1301695134126_.pic副本.jpg

一、仓库和服务器

其实我是想用github,无奈在“内网”中极其不好链接,所以采用了gitee,比较顺畅,小程序开发工具自带上传,所以我只把代码做了一下简单维护。我的服务器是廉价虚拟机,支持php,也是多年没写了,硬着头皮写了简单的增删查改,文件不多,所以直接丢到虚拟机就行了。最关键的要属https协议了,感谢腾讯云提供的免费证书,我记得是每年都要重新申请一次,诶,你看,这个我就可以在小记上做个备注,包括其他待续费的域名什么的,即时进行check。

二、日历组件

没错,小记使用的是开源日历组件:小历同学,有兴趣可以查下看看,是个很不错的工具,在基础上进行了主题重定义以及简单的二次开发,目前展示良好,美中不足的是手势滑动没有过渡swiper,后面看怎么优化吧。

稍微提一下,设置默认时间的字段是defaultDate,但是文档上是defaultDay;展示的节日假日都有配置文件,开发中正好那天8.15是日本投降纪念日,组件没有,就补充上去了,后续其他节日可以再加。

三、UI和交互

组件啦、接口啦都是明确的问题,逐个解决就行,只有UI我是真的找了好几个设计作品进行参考对比,没办法,只能凭借工作经验进行完善,比如字体就找了好几个来试,针对数字进行设置,默认的太丑了。后面也分享到一些群,请网友帮忙看下有没有什么体验问题,还真修了几个。

四、数据库

使用的mysql,我相对熟悉,存储了用户的微信id,后续补充了头像,业务上没啥问题,主要是卡在字段类型,字符集配置成utf8,它是不能存储表情包等超过 3 个字节的字符,需要修改为 utf8mb4 才是正常的 UTF-8,同时在接口的header里设置文本类型:header("Content-type: text/html; charset=utf-8")。

五、叠加功能
  1. 意见反馈,这个功能本来想手写,但是时间有限,而且我也是从其他小程序看到,看到官方提供了接入半屏方法,还是挺实用的,也省去很多麻烦;
  2. 消息通知,这个是作为一个日历工具比较重要的一个需求,看了一下官方文档,不管是小程序的订阅,还是公众号的消息定向通知,都需要用户手动去点一次,除非你是有特殊资质的主体,比如医院、银行等,这个你在选择后下面就会让提供对应的证书,这类是可以无限制的。导流的话可以考虑公众号,但是还是考虑成本,最终采用小程序内订阅,点一次,可以后台发送一次消息,在消息和回流中提醒用户再次点击。最后就是在服务器跑定时任务了,写了一个发送程序,就是查询数据库看有没有三天后的备注事件,逐条发送即可。
六、拿来主义

其实日历组件已经是“拿来”了,确实很香,除此之外,为了让内容更丰富,有个别元素的数据其实是从其他接口获取的,只不过我写了一个rewrite获取,可能得时不时看下,避免接口被封,流量小的情况下应该无妨。 在此悄悄感谢未提名的应用方。

七、后期计划

作为一个时间工具,最重要的就是消息提醒,这块涉及到服务号和短信相关,前端一般不怎么接触,作者还在调研,相信很快就会有发版。

  1. 在五种的消息提醒已经完成,但是公众号还没运行好;
  2. 备注内容的多样性;
  3. 短信通知已经开始着手了,这个会稍微吃点米。
八、最后贴上二维码,希望大佬们多点击、多提建议:
gh_52b6ac35fae6_860.jpeg