哈哈哈哈哈哈哈哈哈! 我终于知道原因了,是async function 导致背锅!async 要不得。 试问官方,你们会把这个程序编译成什么目标代码?难道没有处理成如下的代码?? let customShare = await pageFrame.onShareAppMessage(obj) 而你们的代码是: let customShare = pageFrame.onShareAppMessage(obj) 理所当然的,后面的代码当然会有问题,因为返回了个Promise,解析不了啊! 如果做如下的改进则可以支持两种情况: let result = pageFrame.onShareAppMessage(obj) let customShare = result instanceof Promise ? await result : result // call wechat show share...... 又可以提需求给官方了。
小程序页面分享到聊天之后的消息被他用户点击进入小程序是怎么个执行过程?首先:开发版本的测试,我发现onShareAppMessage回调 return 的 {title,path,imageUrl}貌似都没起到作用,但明明回调已经执行了! 其次:我发现,这种被分享的情况进入小程序的,都是有点奇葩,它是直接进入到对应的页面,我本来做了统一入口page,来处理以下的问题的! 问题是什么?我需要保证新用户从分享进来的时候进行一次自动登录!后面才能够正常的浏览被分享的内容! 为什么开发板测试,onShareAppMessage回调处理return自定义的内容不生效。这个不符合逻辑啊!
2019-11-01验证文件txt请问要怎么弄?格式有没有说明呢
小程序业务域名配置第三方域名怎么配置?假如我需要配置第三方的域名,这个第三方域名是属于合作方的地址,上传不了验证文件,可以配置到业务域名吗? 比如,我需要访问到https://xxxx.com/xxx, 这个域名是第三方合作方的,无法上传验证文件,但是业务需求需要打开第三方业务地址 请求各位大佬回答下怎么解决,谢谢
2019-08-17请问一下,此验证的txt文件在哪可以得到? [图片]
关于小程序业务域名配置问题你好,我们在做小程序的业务域名配置时,遇到了点问题,有两个问题,特咨询如下: 一: 我的小程序里通过web-view访问的域名是https://test.com,但这个test.com不属于我们管理,也无法通过其它渠道把生成的验证文件(.txt)放到test.com下,但是可以放到根域名下的二级虚拟目录,比如 test.com/myweb/下,但这又不符合小程序业务域名的验证规则,所以还是不能通过验证,请问下有其它解决方案吗; 二: 这个验证是一次性的还是有周期的,意思是比如我第一次验证通过了,以后还会去做验证吗. 以上两个问题希望给予答复,多多感谢~~~~~
2019-08-17看提示的样子,是不是BUG呢?
如何使用数据库聚合match过滤$.and我需要在云函数中查询数据库,聚合计算一个人的某月1-31号的消费金额: [代码]let queryFeeSum = await db[代码][代码] [代码][代码].collection([代码][代码]'lunch'[代码][代码])[代码][代码] [代码][代码].aggregate()[代码][代码] [代码][代码].match({[代码][代码] [代码][代码]eno: eno,[代码][代码] [代码][代码]date: $.and([$.gte([[代码][代码]'$date'[代码][代码], dateNumRange.begin]), $.lte([[代码][代码]'$date'[代码][代码], dateNumRange.end])])[代码][代码] [代码][代码]})[代码][代码] [代码][代码].group({[代码][代码] [代码][代码]_id: [代码][代码]null[代码][代码],[代码][代码] [代码][代码]fee: $.sum([代码][代码]'$goodsPrice'[代码][代码])[代码][代码] [代码][代码]})[代码][代码] [代码][代码].end()[代码]date是数值型:它的值是8位整数,如20190701、20190728 上面的 $.and 语句按文档中的写法,聚合这个功能也是官方开发出来不久,找不到相关帮助文档。 运行报错,查看日志提示: {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"errCode: -502001 database request fail | errMsg: [FailedOperation] (BadValue) unknown operator: $and; "} 请问一下,为什么提示操作失败,无效的值、未知的操作器$and。
2019-07-28如下是PostMan测试用的模板,可以用 Import - Past Raw Text 完成导入,然后就可以按顺序测试: 模板内容太长,请下载文件: https://7465-test-p73gd-1259274660.tcb.qcloud.la/WeChat%20%E4%BA%91%E5%BC%80%E5%8F%91API%E6%B5%8B%E8%AF%95POSTMAN.postman_collection.json?sign=d118e6c6413e45871456061b1e959fea&t=1564135628 1、首先填写你的APPID、APPSecret,调用GetAccessToken 获取TOKEN 2、然后,填TOKEN和其他几个参数,调用UploadFile 3、之后,根据UploadFile返回的结果,将得到的参数对号入座,调用PostFileToQCloud! 附上图片,一个请求将文件上传到腾讯云COS的PostMan控制台截图 [图片]
什么时候能解决云开发使用uploadFile HTTPAPI上传文件后不可用使用云开发,在自己的服务器管理微信云端的小程序数据,实现ServerLess的小程序服务。 在这个项目进行到测试阶段,发现了API的BUG问题,使用云开发HTTP API上传文件到微信小程序云存储,在小程序中使用 image src=cloud://xxxxfileID,控制台显示报错,不知道是什么原因。 按文档说明,使用的API是: POST /tcb/uploadfile?access_token={token}该调用成功后会返回一些重要参数,在之后还需要使用这些参数再次调用接口,完成将文件上传到腾讯云。 下面是一段Java代码,实现按参数返回的接口地址和其他参数,调用上传文件。 [代码]String fileName2 = Optional.of(fileName).orElse(file.getName());[代码][代码]MultipartBody requestBody = [代码][代码]new[代码] [代码]MultipartBody.Builder()[代码][代码] [代码][代码].addFormDataPart([代码][代码]"key"[代码][代码], path)[代码][代码] [代码][代码].addFormDataPart([代码][代码]"Signature"[代码][代码], authorization)[代码][代码] [代码][代码].addFormDataPart([代码][代码]"x-cos-security-token"[代码][代码], token)[代码][代码] [代码][代码].addFormDataPart([代码][代码]"x-cos-meta-fileid"[代码][代码], cosFileId)[代码][代码] [代码][代码].addFormDataPart([代码][代码]"file"[代码][代码], fileName2, RequestBody.create(MultipartBody.FORM, file))[代码][代码] [代码][代码].build();[代码][代码]Request request = [代码][代码]new[代码] [代码]Request.Builder()[代码][代码] [代码][代码].url(url)[代码][代码] [代码][代码].post(requestBody)[代码][代码] [代码][代码].build();[代码][代码]try[代码] [代码](Response response = okHttpClient.newCall(request).execute()) {[代码][代码] [代码][代码]return[代码] [代码]response.body().string();[代码][代码]} [代码][代码]catch[代码] [代码](IOException e) {[代码][代码] [代码][代码]Integer code = [代码][代码]1[代码][代码];[代码][代码] [代码][代码]String codeString = [代码][代码]"Call failure:"[代码] [代码]+ e.getClass().getSimpleName();[代码][代码] [代码][代码]String errorMessage = e.getMessage();[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]WeChatCloudAPICallFailException(code, codeString, errorMessage);[代码][代码]}[代码]在这一步,调用也成功,然后在微信开发者工具也能看到已上传的文件和文件夹。 但是,这个文件夹显示有点奇怪,还带了冒号,请看图: [图片] [图片] 上面显示的FileID也是比较奇怪,与调用 HTTP API 上传文件得到的FileID不一样, HTTP API给我返回的值是cloud://test-p73gd.7465-test-p73gd-1259274660/upload_201907/MPCCb0a66c6ee1d7420f94aabb6d5bdcc925.png 如果是直接用小程序 wx.cloud.uploadFile 上传文件,那上传的文件夹不会出现这种奇怪的情况,而且文件fileID是正常可用的。 所以这个应该是云HTTP API的BUG。 遇到这个问题已经快一个月了,之前也有提过,很着急等着,麻烦官方反馈一下,不胜感激!
2019-07-26修改后程序功能运行正常。
云数据库await查询全部数据的官方文档示例代码有BUG!官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/collection.get.html 有BUG的示例:示例代码 3:取集合所有数据 今天我的小程序在用户使用反馈到一个问题,数据导出提示出错,很明显新项目刚测试还未正式上线今天并没有产生要到处的数据。 于是到开发工具的云控制台,查询云函数的运行日志,发现有如下的报错信息: {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Reduce of empty array with no initial value"} 由于没遇到过这个问题,于是就查询了MDN: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value 所以知道,这个原因是因为reduce的数据为空。 虽然只是个实例代码,但作为文档参考,很多新手还是会直接照搬代码,我建议官方要把这个代码优化一下,修改之后如下: [代码]const cloud = require([代码][代码]'wx-server-sdk'[代码][代码])[代码][代码]cloud.init()[代码][代码]const db = cloud.database()[代码][代码]const MAX_LIMIT = 100[代码][代码]exports.main = async (event, context) => {[代码][代码] [代码][代码]// 先取出集合记录总数[代码][代码] [代码][代码]const countResult = await db.collection([代码][代码]'todos'[代码][代码]).count()[代码][代码] [代码][代码]const total = countResult.total[代码][代码] [代码][代码]// 计算需分几次取[代码][代码] [代码][代码]const batchTimes = Math.ceil(total / 100)[代码][代码] [代码][代码]// 承载所有读操作的 promise 的数组[代码][代码] [代码][代码]const tasks = [][代码][代码] [代码][代码]for[代码] [代码](let i = 0; i < batchTimes; i++) {[代码][代码] [代码][代码]const promise = db.collection([代码][代码]'todos'[代码][代码]).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()[代码][代码] [代码][代码]tasks.push(promise)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]// 等待所有[代码][代码] [代码][代码]const result =[代码] [代码](await Promise.all(tasks)).reduce((acc, cur) => {[代码][代码] [代码][代码]return[代码] [代码]{[代码][代码] [代码][代码]data: acc.data.concat(cur.data),[代码][代码] [代码][代码]errMsg: acc.errMsg,[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}, -Infinity)[代码] [代码] result.data = result.data || [] // 处理 没有数据时 reduce 结果 undefined 的情况[代码] [代码] return result [代码] [代码]}[代码]修改了 reduce,增加一个参数 initialValue,资料参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce -----------完毕-------------
2019-07-24分析:估计是match未支持解析command,直接就把类似下面的数据丢给数据库: { date: QueryCommand { operator: 'eq', operands: [ 20190701 ], fieldName: InternalSymbol {} } }
提BUG:aggregate.match()不能用command匹配请看代码: [代码]let querySum = await collection[代码][代码] [代码][代码].aggregate()[代码][代码] [代码][代码].match({[代码][代码] [代码][代码]dateNum:_.eq(20190723)[代码][代码] [代码][代码]})[代码][代码] [代码][代码].group({[代码][代码] [代码][代码]_id: [代码][代码]'$date'[代码][代码],[代码][代码] [代码][代码]sale: $.sum([代码][代码]'$goodsPrice'[代码][代码])[代码][代码] [代码][代码]})[代码][代码] [代码][代码].end()[代码]使用_.eq竟然查不出数据,去掉它就可以。
2019-07-23额,这个语句有点难,查询没输出结果,不断改写调试写到我想吐。。。结果想到来IDE这里又踩坑、碰壁。
云开发是数据库 聚合功能 在控制台和Http api没实装吗?- 当前 Bug 的表现(可附上截图) - 预期表现 - 复现路径 - 提供一个最简复现 Demo [图片] 官方的例子代码。。。控制台直接说命令没有。。。 http api那边报{'errcode': -605101, 'errmsg': "SyntaxError: Line 1, column 30: Unexpected token 'identifier' hint: [kw3tBA05062028]"} 这错误代码也是不识别语句
2019-07-23长按-longtap 按下-touchstart 松手(弹起)-touchend 前面加bind就是你要的
小程序丨button 控件能获得 长按 或者 按下、弹起 事件吗?小程序丨button 控件能获得 长按 或者 按下、弹起 事件吗?
2019-07-22其实呢,在云函数return new Date().toJSON() 然后小程序端: let str = await getServerDate() let localDate = new Date(str) 这样才能完美获得本地的时间,因为服务器上面的时间比本地要慢8小时!UTC时间。刚好toJSON得到的字符串,在本地进行new Date 可以获取到本地的时间!
怎么获取互联网时间啊?不要获取手机自己的时间,怎么获取互联网上的时间啊? - 需求的场景描述(希望解决的问题) - 希望提供的能力
2019-07-18