- 只有三行代码的神奇云函数的功能之三:100%成功获取unionid
这是一个神奇的网站,哦不,神奇的云函数,它只有三行代码:(真的只有三行哦) 云函数:login index.js: const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event) => { return { ...event, ...cloud.getWXContext() } } 神奇功能之三:100%成功获取unionid: 保证100%成功获取unionid,需要用户信息授权。 强调一下:这个100%是指必须绑定了开放平台,那么不管用户是什么情况,不管有没有关注公众号,一定100%能获取到unionid。 依然需要符合unionid机制:第1条。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html js: getUserInfo: function (e) { app.globalData.userInfo = e.detail.userInfo if (!app.globalData.unionid ) { wx.cloud.callFunction({ name: 'login', data: { weRunData: wx.cloud.CloudID(e.detail.cloudID) } }).then(res => { app.globalData.unionid = res.result.weRunData.data.unionId }) } }, 其他功能: 神奇功能之四:获取电话号码: 还是这三行代码,获取用户的电话号码。 https://developers.weixin.qq.com/community/develop/article/doc/0006a8ec7ac860c94bf90a34f5d813 神奇功能之五:获取群id: 将小程序分享到某群里,可获得该群的群id, https://developers.weixin.qq.com/community/develop/article/doc/000ea802c00f70894cf9fe72556013 神奇功能之一:获取openid: https://developers.weixin.qq.com/community/develop/article/doc/00080c6e3746d8a940f9b43e55fc13 神奇功能之二:不用授权获取unionid: https://developers.weixin.qq.com/community/develop/article/doc/000a0c6b580338e947f9db0c65b813 [图片]
2020-10-25 - 小程序通过webassembly加载opencv.js
测试在安卓下(Mate30 Pro)可以使用webassembly的相关函数,随即测试了opencv.js,通过对胶水代码的魔改( 1.如对无法使用的new Function,用固定的function加动态获取传入参数仿写 2.对某些函数读取外部文件,将FS改造,提前将文件通过小程序的FileSystemManager读入虚拟目录中 ),经测试,可以使用opencv.js提供的API,面部、眼睛检测速度大约在15帧/秒。 现提供代码给大家增添思路: https://github.com/leo9960/opencv.js-wechat
2020-06-12 - 5行代码获取小程序用户手机号
最近有很多同学有获取小程序用户手机号的需求。其实云开发出现之前我们获取小程序用户的手机号特别繁琐。自从有了云开发,我们获取用户手机号变得非常简单。只需要5行代码即可。 老规矩,我们先来看下效果图 [图片] 再来看下核心的代码,其实只有下面这一些。 [图片] 甚至可以说核心代码只有上图红色框里的两行。是的,你没听错,只靠这2行代码,就可以轻松的获取用户小程序绑定的手机号。 下面我们就来具体讲解吧。 注意:只有企业小程序才可以获取用户手机号,个人小程序没有办法获取的。 一,首先要用到button组件的开发能力 [图片] 编写wxml文件,代码很简单 [图片] 可以看到我们的button按钮,使用了open-type。 再来看下我们对应的js方法。这样我们点击按钮时,就会弹出授权弹窗。如下图 [图片] 不管用户点击拒绝还是允许,我们都能拿到对应的回调。再用户点击了允许以后,就可以获取到以下数据。 [图片] 大家看到我们获取的数据里有一个cloudID,其实这个值很有用的。 二,开发数据检验与解密 1,首先我们看下官方提供的获取手机号的文档。 [图片] 看官方文档,可以知道,我们这里涉及到一个数据的检验与解密问题 2,开发数据检验与解密 [图片] 这里我们要使用的就是方式二,使用云函数来实现解密,然后拿到用户的手机号。 三,云函数的编写 [图片] 通过上图可以看到,我们编写的云函数很简单。这里主要用的就是cloud.getOpenData这个功能。而这个功能需要的参数就是我们上面第一步获取的cloudID [图片] 这样我们调用云函数的时候,只需要把对应的cloudID传进来即可。 [图片] 看下我们的cloudID的作用,再来看下我们通过button的open-type获取的cloudID [图片] 可以看出,我们的cloudID和encryptedData一样,是一串加密数据。我们要通过云函数获取手机号,需要的就是这串加密字段。 四,上传cloudID获取手机号。 上面第三步云函数编写好以后,我们就可以来调用了。调用之前一定要记得部署下云函数,一定要记得部署下云函数。。。。 [图片] 上图就是我们的云函数的调用。如果你对云开发和云函数还不了解,建议你去看下我之前写的云开发相关的文章,获取看下我录的《微信小程序云开发云函数入门》 这时候点击按钮,我们就可以获取到了我们所需要的手机号了 [图片] 到这里我们就可以轻松的通过云开发获取用户的手机号了,比起传统的后台开发来获取,是不是简单了很多。 今天就讲到这里了,后面我还会写更多小程序相关的技术文章出来,请持续关注。
2019-12-16 - 云函数云数据库日期比较怎么写?
需求很简单,把当天(国庆当天)订单所有金额合计一下,调试不出来,查阅了论坛都提到数据库聚合日期比较没法比呀: [代码]const res = await db.collection([代码][代码]'orders'[代码][代码])[代码][代码] [代码][代码].aggregate()[代码][代码] [代码][代码].addFields({[代码][代码] [代码][代码]matched: $.and([$.gt([[代码][代码]'$addTime'[代码][代码], [代码][代码]new[代码] [代码]Date([代码][代码]'10/1/2019'[代码][代码])]), $.lt([[代码][代码]'$addTime'[代码][代码], [代码][代码]new[代码] [代码]Date([代码][代码]'10/2/2019'[代码][代码])])])[代码][代码] [代码][代码]})[代码][代码] [代码][代码].match({[代码][代码] [代码][代码]sellerId: openid,[代码][代码] [代码][代码]status: $.neq(-1),[代码][代码] [代码][代码]matched: [代码][代码]true[代码][代码] [代码][代码]})[代码][代码] [代码][代码].group({[代码][代码] [代码][代码]_id: [代码][代码]null[代码][代码],[代码][代码] [代码][代码]totalFinalSum: $.sum([代码][代码]'$finalSum'[代码][代码])[代码][代码] [代码][代码]})[代码][代码] [代码][代码].end()[代码]
2019-10-01 - 请问数据库中如何对日期作筛选呢?
各位前辈,数据库中有这样一个结构的数据: [图片] 现在想按日期来筛选,比如筛选 2019-10-1到2019-10-31 的数据,使用云开发该怎么写呢?我看文档好像都是说的怎么按键值筛选,现在要对key进行筛选该怎么操作呢?
2019-10-31 - 请问如何获取给定日期范围内的全部日期?
求救:需要获取 2019-12-20 到 2020-3-2 号之间所有日期的列表,结果像这样:[2019-12-20,2019-12-21,2019-12-22,......2020-3-2]。请问怎样才能实现呢?存在跨月跨年的问题。 我现在考虑 通过 new Date 获得当前日期,然后每次加1,但到2019-12-31号再加1,怎么能跳到 2020-1-1 而不能是2019-12-32 呢?
2019-10-16