项目背景与选择
最近申请了个人小程序,原本计划只使用本地存储功能就能满足需求。但由于需要接入定时推送服务,最终选择了云开发方案。虽然之前使用过团队搭建好的云开发环境,但这次决定从头开始自己实现,以便全面了解整个流程。
云开发服务开通
开发的第一步是开通云开发服务。在微信开发者工具中点击"云开发"按钮,按照系统提示一步一步操作即可完成开通。整个过程简单直观,没有遇到明显的障碍。
云函数路径设置
在项目配置文件中需要进行云函数路径设置,在.json文件中添加"cloudfunctionRoot": "/cloudfunctions"配置项。云函数的目录结构通常包含三个核心文件:
.json文件:声明函数配置,包括接口权限和定时触发器等
.js文件:云函数执行入口(文件名可自定义)
.json文件:记录云函数具体信息和依赖关系
创建云函数的注意事项
在本地新建的文件夹无法自动同步到云函数列表。创建云函数可以通过两种方式:
1. 在云开发后台直接创建
2. 在开发者工具中右键点击选择"新建云函数"
需要注意的是,如果在后台创建的云函数,需要点击"同步云函数列表"才能在小程序项目中看到。编译时云函数文件夹不会被包含在小程序的发布路径中,这可能导致新建函数时产生困惑。
云函数部署与调用
新建的云函数文件需要右键选择"云函数增量上传"进行发布部署后才能正常调用。在调用云函数前必须先初始化,否则会收到错误提示:"API isn't available, please call wx.cloud.init()"。初始化完成后,就可以正常调用各种云API了。
订阅消息实现
wx.cloud.init({
env: 'XXXXXX'
});
// 执行云函数
wx.cloud.callFunction({
name: 'funcitonname', // 对应云函数的文件夹名称
data: 'params', // 传参
success: res => {

console.log('云函数调用成功,返回数据res:', res);
},
fail: err => {
console.error('云函数调用失败', err);
},
});
通过wx.requestSubscribeMessage实现消息订阅功能。这需要在小程序中获取用户授权,具体实现可参考官方文档。成功实现消息通知功能后,就可以着手实现定时推送服务。
定时触发器的配置
为了实现每天早上10点的定时推送,使用了云函数的定时触发器功能。按照文档说明配置后,发现触发器并不会自动执行。需要特别注意:触发器配置修改后,必须单独执行"上传触发器"操作,定时功能才能生效。
// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); // 使用当前云环境
// 云函数入口函数
exports.main = async event => {
await cloud.openapi.subscribeMessage.send({
touser: openid,
page: 'pages/index/index',
data: {
thing1: {
value: goods.data[0].name
},
date3: {
value: goods.data[0].expire
}
},
miniprogram_state: 'formal',
templateId: 'templateid'
});
}
return 'success';
};
数据库操作
云函数中的主要业务逻辑是通过云数据库实现基础的CRUD操作。官方文档对这些操作有详细说明,开发者可以根据实际需求查阅相关章节。
// config.json
{
"permissions": {
"openapi": []
},
"triggers": [
{
"name": "expireNoticeTrigger",
"type": "timer",
"config": "0 0 10 * * * *"
}
]
}
开发体验总结
整体来看,云开发并没有想象中复杂,但在开发过程中仍有许多细节需要注意。通过这次实践,对小程序云开发的完整流程有了更深入的理解,也为今后的项目积累了宝贵经验。
整个实现过程虽然遇到了一些小问题,但通过查阅文档和尝试最终都得到了解决。云开发为小程序提供了便捷的后端支持,大大降低了个人开发者的接入门槛。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态