离岛日签 | 微信小程序云开发初体验

阅读 802
收藏 12
2019-02-21
原文链接:mp.weixin.qq.com

题图:摄于上海喜马拉雅艺术馆

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 无人岛 刘人语 - 无人岛

很多事情的开始都是长存于潜意识的精神需求和偶然的决定性契机相结合导致的结果,接触摄影也差不多,以前对于艺术的未知抱有一种神秘的向往,总觉得人的一生应该有一个时间段去了解某一种艺术门类,近而可以通过这扇大门拥抱更广阔的世界。

契机可能就是8年前来到了上海,发现摄影相对其他门类是打开一扇大门最易找到的一把钥匙。当然就像一位老师说过“摄影很难,难在太简单了”,钥匙容易找到,寻找广阔的世界并不容易。

先从城市街景再到后来到处旅拍,要说摄影对我来说最大的意义是什么?就像上面提到的,这是一扇可以去触及艺术的大门。可能艺术离大多数摄影作品来说有很远的距离,但是就算远,有了方向就能走下去,总会有一天可以触摸到“何为艺术”这个问题的边缘。

积极的看,也许沉浸在一个爱好中,会让自己专注,让生活充实,但是也可能错过其他的东西,我不同意说摄影就是无休止地按下快门,记录下身边的一切,我更同意,去体会和热爱生活的点点滴滴后拍下更喜欢的照片,而并非为拍而拍。

我觉得文字和照片都是岁月里最好的记录者,于是我想为此开发一个简单的小应用来作为我记录的工具,考虑到微信小程序生态已经发展的比较完善了,特别是小程序云开发能力为开发者提供了完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代。

下面👇是我开发的第一个微信小程序:

离岛日签 宜真爱 Mini Program

我这个小程序很简单,简单介绍一下:

1、文艺、治愈、减压的文字照片记录分享小程序;

2、上拉下滑,左右滑动都可以切换文字和图片,用户也可以将文字分享给好友;

3、总有一段文字适合你现在的心境,每天打开小程序你都可以收获不一样的惊喜。

好啦接下来我大致讲一下我的开发体验:

整个开发流程中涉及的服务微信开发者工具都有提供,而且对于有一定开发能力的同学来说上手也很简单,参照官方文档很容易搭建起小程序的初始框架。

微信这个开发者工具麻雀虽小五脏俱全从开发、调试、代码版本管理、测试、发布等产品开发上线一条龙服务全都有,下面是云开发控制台。

在控制台这里可以直接管理云开发资源,接下来我把开发中遇到的一些小问题跟大家分享一下:

1、数据库环境切换

用户开通云开发后初始默认可拥有最多两个环境。在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境,当我们在测试环境开发完成后要发布上线前,记得把数据库环境指定为正式环境,如下图在根目录的app.js文件中配置:

2、添加数据和资源

云开发提供了一个 JSON 数据库,这里完全是图形化的操作,设计好你的数据库结构和字段就可以手动添加了:

云开发还提供了一块存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云存储功能。

这里顺便提一下,微信本身会对上传的图片资源进行压缩,不过如果图片本身就很大,压缩后依然也会比较大,经过实验当图片资源过大会导致小程序内存紧张容易出现白屏现象,建议不要加载过大的图片资源。

3、有时候读取数据的时候会出现空数组的情况

一般是上面数据库部分和存储部分的权限设置未修改

4、读取数据进行前端展示

由于云开发提供了数据库,所以我们可以不用部署自己的服务器通过HTTP调用数据库数据,直接通过微信提供的数据库API就可以直接获取后端数据进行展示。

5、基础库换成最新的

另外由于一些新特性需要依赖高版本的基础库,所以记得在项目详情页中调整基础库的版本。

6、测试服务不稳定

微信开发者工具虽然提供了测试服务,但由于此功能还在优化中所以存在不稳定现象,如果你发现自己申请的测试报告一直报超时,不是你的姿势有问题,请在开发者论坛反馈。

7、定时触发通知任务

因为我的小程序提供了通知功能,但希望这个动作可以做到每日定时发送,在没有第三方服务器的情况下,好在微信云开发提供了定时触发器的功能,而且还支持在云函数中调用HTTP请求,这样就可以方便的接入任何第三方通知服务了,如下:

记得在云函数中也要指定数据库环境,另外如果要在云函数中使用request的方法,要单独申明:

配置好定时触发器之后记得要上传!

想要明白些道理,遇见些有趣的事 —— 离岛

评论