仔细读文档 [图片]
微信小程序canvasToTempFilePath 保存时候无法保存图片文字可以保存?// pages/dispatch/waybillModel/components/shareDrawing/index.js Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { photoFile: '' //本地图片路径 }, /** * 组件的方法列表 */ methods: { /** * 获取本地图片 */ getPhotoFile: function(e) { e.success(this.data.photoFile); }, getShareDrawing: function(e) { let _this = this; let goodsName = e.goodsName; //货物名称 let beginCity = e.beginCity; //出发省份 let beginAddress = e.beginAddress; //出发详细地址 let endCity = e.endCity; //目的地城市 let endAddress = e.endAddress; //目的地详情地址 let QRCode = e.QRCode; //二维码图片 //返回一个 SelectorQuery 对象实例 const query = this.createSelectorQuery(); //选择canvas query.select('#myCanvas') .fields({ node: true, size: true }) .exec((res) => { const canvas = res[0].node; //获取 canvas 对象 const ctx = canvas.getContext('2d'); // 获取Context 对象 //canvas 缩放 const dpr = wx.getSystemInfoSync().pixelRatio; canvas.width = res[0].width * dpr; canvas.height = res[0].height * dpr; ctx.scale(dpr, dpr); //绘制顶部边条 _this.setHeadStrip(canvas, ctx); //绘制货物名称 _this.setTitle(ctx, goodsName); //绘制提示 _this.setTips(ctx); //绘制二维码 _this.setQRCode(canvas, ctx, QRCode) //绘制出发地图标 _this.setBeginIcon(canvas, ctx); //绘制出发省份 _this.setBeginCity(ctx, beginCity); //绘制出发详细地址 _this.setBeginAddress(ctx, beginAddress); //绘制目的地图标 _this.setEndIcon(canvas, ctx); //绘制目的地城市 _this.setEndCity(ctx, endCity); //绘制目的地详情地址 _this.setEndAddress(ctx, endAddress); //生成图片 wx.canvasToTempFilePath({ canvas, success(res) { _this.setData({ photoFile: res.tempFilePath }) } }) //end exec }) //end }, /** * 设置货物名称 * @param {Object} ctx Context 对象 * @param {Object} str 名称文本 */ setTitle: function(ctx, str) { const width = 342 // 获取设备宽度 ctx.font = '500 19px PingFangSC-Medium'; ctx.fillStyle = '#000'; ctx.fillText(str, (width - ctx.measureText(str).width) * 0.5, 40); }, /** * 设置顶部条形 * @param {Object} canvas canvas 对象 * @param {Object} ctx Context 对象 * @param {Object} src 图片链接 */ setHeadStrip: function(canvas, ctx) { const headerImg = canvas.createImage(); // 获取image 对象 headerImg.src = 'https://cdn.nucarf.cn/xgb/v1.0/public/head.png'; headerImg.onload = () => { ctx.drawImage(headerImg, 0, 0, 342, 10); }; }, /** * 绘制二维码 * @param {Object} canvas canvas 对象 * @param {Object} ctx Context 对象 * @param {Object} src 图片链接 */ setQRCode: function(canvas, ctx, src) { const headerImg = canvas.createImage(); // 获取image 对象 headerImg.src = src; headerImg.onload = () => { ctx.drawImage(headerImg, 101, 103, 140, 140); ctx.restore(); }; }, /** * 绘制提示 * @param {Object} ctx Context 对象 */ setTips: function(ctx) { const width = 342 // 获取设备宽度 ctx.font = '500 15px PingFangSC-Medium'; ctx.fillStyle = '#F1950A'; let str = "请司机扫码上传证件"; ctx.fillText(str, (width - ctx.measureText(str).width) * 0.5, 70); }, /** * 绘制出发地图标 * @param {Object} canvas canvas 对象 * @param {Object} ctx Context 对象 */ setBeginIcon: function(canvas, ctx) { const headerImg = canvas.createImage(); // 获取image 对象 headerImg.src = 'https://cdn.nucarf.cn/xgb/v1.0/public/begin1.png'; headerImg.onload = () => { ctx.drawImage(headerImg, 30, 300, 21, 34); }; }, /** * 绘制出发城市 */ setBeginCity: function(ctx, str) { ctx.font = '500 16px PingFangSC-Medium'; ctx.fillStyle = '#000'; ctx.fillText(str, 61, 310); }, /** * 绘制详细地址 */ setBeginAddress: function(ctx, str) { ctx.font = '400 14px PingFangSC-Medium'; ctx.fillStyle = '#666666'; ctx.fillText(str, 61, 330); }, /** * 绘制目的地图标 * @param {Object} canvas canvas 对象 * @param {Object} ctx Context 对象 */ setEndIcon: function(canvas, ctx) { const headerImg = canvas.createImage(); // 获取image 对象 headerImg.src = 'https://cdn.nucarf.cn/xgb/v1.0/public/end1.png'; headerImg.onload = () => { ctx.drawImage(headerImg, 30, 368, 21, 34); }; }, /** * 绘制目的地城市 */ setEndCity: function(ctx, str) { ctx.font = '500 16px PingFangSC-Medium'; ctx.fillStyle = '#000'; ctx.fillText(str, 61, 380); }, /** * 绘制目的地详细地址 */ setEndAddress: function(ctx, str) { ctx.font = '400 14px PingFangSC-Medium'; ctx.fillStyle = '#666666'; ctx.fillText(str, 61, 400); } } })
2021-06-21https://res.wx.qq.com/open/js/jweixin-1.3.2.js
请问下现在有wenxin.js基础库下载吗,想下个最新版?或者引用地址是什么?谢谢各位!
2021-06-21调用这个接口是有IP白名单配置的,你放到前端,IP是不固定的,肯定调用不了,必须要在IP确定的服务器上进行调用,公众号和小程序开发配置里把对应的IP白名单设置好。
获取access_token?https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appserect} 调用这个接口获取access_token,本地调试,真机调试都好用,发布到测试版上就获取不到,是什么原因
2021-06-21软件设计问题,你按住说话的那个按钮不要设计到底部啊,下面留出安全区,不要触发系统的“底部上划”手势即可。
小程序按住说话然后上滑取消事件,上滑取消会触发全面屏手机的后台软件切换事件,这个怎么解决呀?小程序按住说话然后上滑取消事件,上滑取消会触发全面屏手机的后台软件切换事件,这个怎么解决呀?
2021-06-21https://lbs.qq.com/miniProgram/plugin/pluginGuide/pluginOverview
请问有没有可以制作外卖配送员位置的demohttps://developers.weixin.qq.com/miniprogram/dev/component/map.html
2021-06-21配置的事件接口URL有误,无法解析。在公众号的开发配置里关闭服务器接收事件。如果自己并没有配置开发服务器,则查看一下公众号关联的第三方平台,可能是某个平台服务器出错,逐一取消绑定排查即可。
公众号接口告警怎么回事?如何解决?你好,你的公众号接口出现异常,功能可能已经失效,请加入微信群接收接口报警,这个问题怎么解决??现在推送不了消息 APPID:wx7abc23e85d97af73,时间2021.6.19,10:43分 麻烦给解决下吗 [图片]
2021-06-21这个错误日志触发率在所有用户中加起来超过70%,需要重视!
onLauch中调用wx.getUpdateManager出现undefined?开发者工具和真机测试没有遇到过,但是线上小程序的错误日志分析里,有大量使用2.16基础库的用户这个接口都获取不到UpdateManager这个对象onLaunch: function (e) { // 获取更新实例 const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 console.log(res.hasUpdate) }) // 更新提示 updateManager.onUpdateReady(function () { wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success: function (res) { if (res.confirm) { updateManager.applyUpdate() } } }) }) // 更新失败 updateManager.onUpdateFailed(function () { wx.showToast({ title: '新版本下载失败,请重启应用', icon: 'none' }) }) } 因为错误日志都出现在updateManager.onCheckForUpdate,基本可以断定是冷启动时wx.getUpdateManager()偶现失效,错误日志如下: /** * Andorid * 客户端版本号 * 8.0.2 86.67% * 8.0.1 13.33% * 基础库2.16.0 100% * **/ Cannot read property \'onCheckForUpdate\' of undefined TypeError: Cannot read property \'onCheckForUpdate\' of undefined at Oe.checkAppUpdate (https://app.js:35:19) at Oe.<anonymous> (https://lib/WASubContext.js:2:2386798) at Oe.onLaunch (https://app.js:14:10) at Oe.<anonymous> (https://lib/WASubContext.js:2:2387256) at new Oe (https://lib/WASubContext.js:2:2388013) at Function.<anonymous> (https://lib/WASubContext.js:2:2388325) at https://lib/WASubContext.js:2:2374880 at https://app.js:11:1 at require (https://lib/WASubContext.js:2:2429539) at https://usr/app-service.js:5377:10 /** * iOS * 客户端版本号 * 8.0.4 53.85% * 8.0.2 30.77% * 8.0.3 15.38% * 基础库版本2.16.0 100% **/ undefined is not an object (evaluating \'e.onCheckForUpdate\') checkAppUpdate@https://app.js:35:5 https://lib/WASubContext.js:2:2386803 onLaunch@https://app.js:14:10 https://lib/WASubContext.js:2:2387261 Oe@https://lib/WASubContext.js:2:2388021 https://lib/WASubContext.js:2:2388331 https://lib/WASubContext.js:2:2374885 https://app.js:11:1 require@https://lib/WASubContext.js:2:2429540 global code@https://usr/app-service.js:5364:17 value@https://lib/WAServiceMainContext.js:2:154041 https://lib/WAServiceMainContext.js:2:157113 https://lib/WAServiceMainContext.js:2:157080 w@https://lib/WAServiceMainContext.js:2:82070 s@https://lib/WAServiceMainContext.js:2:82344 a@https://lib/WAServiceMainContext.js:2:156029 https://lib/WAServiceMainContext.js:2:157540 https://lib/WAServiceMainContext.js:2:146632 https://lib/WAServiceMainContext.js:2:259690 https://lib/WAServiceMainContext.js:2:258655 https://lib/WAServiceMainContext.js:2:258619 https://lib/WAServiceMainContext.js:2:259690 w@https://lib/WAServiceMainContext.js:2:78332 现在只能先使用定时器延迟执行此段代码,看看是否能够去除小程序后台错误日志
2021-04-18第一步,先要调用 wx.login 让用户进入登录态,这个接口并不能获取到手机号。 第二步,在页面上使用 <button open-type="getPhoneNumber" bindgetphonenumber="logicBehindClick"></button> 按钮,用户点击后选择是否授权手机号(和小程序主体类型无关),具体处理逻辑(数据库保存用户手机)由点击后回调函数 logicBehindClick 进行处理
请问wx.login接口获取手机号时,小程序认证主体为个体商户能否有权限可以获取?急![图片]
2021-03-20找到了一个很容易复现问题的方法:使用循环发送模板消息,access_token一致,记录成功和失败日志,会均匀出现类似110110110这样的结果。 那么可以大胆假设是集群负载均衡的问题。高并发情况下请求同一接口,负载会均衡到后端不同服务器上,其中有一台(或某几台)上的token同步有问题导致轮询到这台(或几台)服务器上时返回40001。如果自己在请求时加一点延迟,保证每次都是请求到正常的后端服务器上(均衡时肯定是有权重分配的)就不会有这个问题。
access_token频繁出现40001这个问题频繁出现,开始以为是我们token过期了,排查代码没有问题。然后又更改秘钥,同一样是提示失效。最后使用相同的access_token值(已做缓存)直调小程序获取模板接口,时而成功,时而失败。调用其他接口时也会有失效的提示,不确定是否是通病。看过类似的答疑,官方回复说是网络延迟,如果偶尔出现也许是网络原因,很多开发者都遇到了此种问题,并且是调用频繁失败,是不是和网络延迟没有关系了呢?希望能引起官方重视,将此问题解决掉或者给与合理的建议,谢谢! 期待官方给与回复。
2021-03-18解决了这坑!服务商发放现金红包,只能setSubMerChantID不能setSubAppID!!!(其他接口,两个都要设置) 设了就给你报签名错误,让人查疯掉。这错误提示真的无语了,只能自己慢慢试出来,文档上根本不会给你写这些!
服务商模式 现金红包签名错误服务商模式为特约商户实现现金红包功能,条件如下: 1、子商户的merchant key和服务商merchant key相同 2、直接使用子商户证书进行红包发放正常(子商户自己也满足条件开通了现金红包功能) 3、使用服务商模式,服务商证书、key(由于子商户key也设置为一样的,所以并不能确定微信这里到底要求采用哪个key来签名,不影响测试结果)的情况下,为子商户进行统一下单返回正常,为子商户进行现金红包发放返回签名错误 4、签名校验接口验证的sign和签名传输的sign完全一致 5、子商户已授权服务商现金红包功能 6、直接使用校验工具中生成的结果xml请求,仍然返回签名错误! 理论上,可以使用子商户直连的方式来发送红包解决当前问题,但是未来此功能会有很多子商户使用,每一个都单独进行证书和key的管理将会非常麻烦, 实在没辙了!望解答!
2021-02-06