做了两款小程序,都是基于【小程序云开发】 1: 吃什么 Today 提供饮食日记(可分享)、查看附近网友分享的日记。 从图片的上传、内容安全的检测,到附近网友分享的记录(重点云数据库),均使用微信提供的服务; 重点:GEO 特性(超级赞),把距离什么的全算好了,非常省事(该小程序于本月才发布上线,是 18 年年底开始开发的,那时还没有此类特性); 代码(为避免无意义的吐槽,已删除注释) const _ = db.command; const $ = db.command.aggregate; var OPENID = wxcontext.OPENID; var aggregate; var recordId = event['id']; if ( recordId ) { event.tab = TAB_OVERALL; } switch (event.tab) { case TAB_NEARBY: aggregate = db.collection('records').aggregate(); aggregate.geoNear({ distanceField: 'distance', spherical: true, near: db.Geo.Point(event.lng, event.lat), maxDistance: 4 * 5 * 1000, query: { text: _.neq(null), status: STATUS.PASSED, visibility: VISIBILITY.PUBLIC } }); break; case TAB_OVERALL: aggregate = db.collection('records').aggregate(); var conditions = { text: _.neq(null), status: STATUS.PASSED, visibility: VISIBILITY.PUBLIC }; if ( recordId ) { conditions._id = recordId; } aggregate.match( conditions ); break; case TAB_FOLLOWING: var following = await db.collection('wx_users') .where({ followers: _.elemMatch(_.in([ OPENID ])) }) .field({ _openid: true }) .get(); var users; if (following.data.length) { users = []; following.data.forEach(function(x) { users.push(x._openid); }); } else { return { list: [] }; } aggregate = db.collection('records').aggregate(); aggregate.match({ _openid: _.in( users ), text: _.neq(null), status: STATUS.PASSED, visibility: VISIBILITY.PUBLIC }); break; } // -------------------------------------- aggregate .sort({ create_time: -1 }) .skip(20 * (0)) .limit(20); switch (event.tab) { case TAB_NEARBY: case TAB_OVERALL: aggregate.lookup({ from: "wx_users", localField: "_openid", foreignField: "_openid", as: "wx_user" }); break; case TAB_FOLLOWING: aggregate.lookup({ from: "wx_users", localField: "_openid", foreignField: "_openid", as: "wx_user" }); break; } aggregate.replaceRoot({ newRoot: $.mergeObjects([$.arrayElemAt(['$wx_user', 0]), '$$ROOT']) }) .addFields({ is_owner: $.eq(['$_openid', OPENID]), following: $.cond({ if: $.isArray('$followers'), then: $.in([OPENID, '$followers']), else: false, }), liked: $.cond({ if: $.isArray('$likes'), then: $.in([OPENID, '$likes']), else: false, }) }); var shouldRemoveFields = { _openid: false, nick_name: false, gender: false, // ------------------------------------ wx_user: false, followers: false, likes: false, views: false, wx_runtime: false, // ------------------------------------ geo_coord_type: false, address_rough: false, location: false, city: false, province: false, country: false, language: false }; switch (event.tab) { case TAB_FOLLOWING: case TAB_OVERALL: shouldRemoveFields.address_recommend = false; break; } aggregate.project( shouldRemoveFields ); var output = await aggregate.end(); 当然最重要的是是真相 [图片] [图片] 2: 汇品栈(废品回收) 同样是基于云开发,重点依然是 GEO 特性(派单时通过 GEO 预筛选出就近的师傅)。 [图片]
#云开发# 你有使用小程序·云开发数据库吗?有什么经典案例可以分享呢?小程序·云开发的数据库,是一个既可在前端操作、也能在云函数中读写的json数据库,对外提供丰富的数据库API。从满足基础可用性到现在,已能够满足中大型小程序的要求。 那么,基于云开发数据库,你做过哪些有意思的小程序实践呢?在这个话题中,我们面向广大开发者(包括个人和企业)征集云开发数据库的使用案例,优秀的案例将有机会获得官方专属访谈与“微信开发者”官方公众号推送宣传分享。 [图片] 案例分享建议包括云开发数据库使用背景与需求,可提供脱敏的代码示例与数据。 参与#云开发#系列话题并提供高质量回答或建议者即有机会获得微信相框Classic一台,快来参加吧! [图片] *获奖情况将在后续「社区每周」公告中公示,如获访谈机会将有官方运营专员通过社区私信联系作者,请及时留意社区私信 *使用小程序云开发过程中的如有疑问或Bug反馈,可在社区云开发版块发帖交流
2020-06-28之前这个 cloud.DYNAMIC_CURRENT_ENV 应该是 String 类型,某次更新后为 Symbol 类型了。
【急】云函数中使用cloud.DYNAMIC_CURRENT_ENV不起作用?【急】云函数中使用cloud.DYNAMIC_CURRENT_ENV不起作用 本来好好的。今天晚上突然不行了!!!!!!! return 出来的值是对的,但是init使用这个变量 没作用。。 移动到main函数中进行初始化没问题
2020-05-11可以实现,参考腾讯云图片处理相关的文档。 https://cloud.tencent.com/document/product/460/36540
云存储关于图片是否有缩略图功能上传图片到小程序云存储,是否有方法获取到缩略图,就像七牛云那样,最后可以加个样式,得到缩略图
2020-05-08对,我在 iOS 设备一次订阅可收到多次,但 Android 设备只能收到一次,二次发送消息,则提示 -> Error: errCode: 43101 | errMsg: openapi.subscribeMessage.send:fail user refuse to accept the msg hint
wx.requestSubscribeMessage订阅消息,发送模板消息只能发送一次?小程序使用wx.requestSubscribeMessage调起订阅消息界面,我和同事订阅了同样的模板消息id,并且选择了不再提示弹窗。 调用发送模板消息的接口,我的微信一次订阅之后就可以永久接收消息,不需要再调用wx.requestSubscribeMessage这个方法,但是我同事只能接收一次消息,第二次发送消息的时候就提示 "errmsg": "user refuse to accept the msg hint: [khYfSA00824124]",必须再调用一次wx.requestSubscribeMessage这个方法才可以接收消息,我同事并没有选择拒绝接收,请问这个逻辑是怎样的?
2020-03-11