- 小程序长按识别公众号二维码
小程序目前支持长按识别公众号二维码不?小白求解。。。
2018-12-11 - 关于Canvas缩放时插值算法的控制属性image-rendering支持
由于Android小游戏canvas无法设置imageRendering样式,导致缩放产生模糊。 在模拟器及IOS中可正常设置,无此问题。 - 当前 Bug 的表现(可附上截图) [图片] - 预期表现 [图片] - 复现路径 进入小游戏即可出现 - 提供一个最简复现 Demo [代码]var[代码] [代码]canvas = wx.createCanvas();[代码][代码]var[代码] [代码]buff = wx.createCanvas();[代码] [代码]var[代码] [代码]sysinfo = wx.getSystemInfoSync();[代码][代码]buff.width = sysinfo.windowWidth;[代码][代码]buff.height = sysinfo.windowHeight;[代码][代码]//由于无法控制css的宽高,只能缩小画布实现放大[代码][代码]canvas.width = sysinfo.windowWidth/4;[代码][代码]canvas.height = sysinfo.windowHeight/4;[代码] [代码] [代码] [代码] [代码] [代码]/**[代码][代码] [代码][代码]* [代码][代码] [代码][代码]* 此样式在Android无法使用,导致模糊问题[代码][代码] [代码][代码]* canvas.style.imageRendering='pixelated';[代码][代码] [代码][代码]*/[代码] [代码]var[代码] [代码]x = 10;[代码][代码]var[代码] [代码]y = 10;[代码] [代码]var[代码] [代码]buffctx = buff.getContext([代码][代码]'2d'[代码][代码]);[代码][代码]var[代码] [代码]mainctx = canvas.getContext([代码][代码]'2d'[代码][代码]);[代码][代码]//背景色[代码][代码]buffctx.fillStyle = [代码][代码]'#ffffff'[代码][代码];[代码][代码]buffctx.fillRect(0, 0, buff.width, buff.height);[代码][代码]//X图像数据[代码][代码]var[代码] [代码]xdata = [[代码][代码] [代码][代码]1, 0, 0, 0, 1,[代码][代码] [代码][代码]0, 1, 0, 1, 0,[代码][代码] [代码][代码]0, 0, 1, 0, 0,[代码][代码] [代码][代码]0, 1, 0, 1, 0,[代码][代码] [代码][代码]1, 0, 0, 0, 1[代码][代码]];[代码][代码]var[代码] [代码]img=buffctx.getImageData(x,y,5,5);[代码][代码]for[代码][代码]([代码][代码]var[代码] [代码]i=0,m=xdata.length;i<m;i++){[代码][代码] [代码][代码]//每像素4字节[代码][代码] [代码][代码]if[代码][代码](xdata[i] == 1){[代码][代码] [代码][代码]img.data[i * 4] = 0;[代码][代码] [代码][代码]img.data[i * 4+1] = 0;[代码][代码] [代码][代码]img.data[i * 4+2] = 0;[代码][代码] [代码][代码]img.data[i * 4+3] = 255;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]img.data[i * 4] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 1] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 2] = 255;[代码][代码] [代码][代码]img.data[i * 4 + 3] = 255;[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]//画入buff[代码][代码]buffctx.putImageData(img, x, y);[代码][代码]//从buff画入主屏,此时产生缩放效果[代码]setInterval(function(){ mainctx.drawImage(buff, 0, 0); },1000);
2018-12-20 - canvas 字体 加粗
看了好多 提问的,就没有一个靠谱的 解决方法,官 回复 总感觉 没说到点子上,都没有提出 具体的解决办法。贴个 文档地址,一点用都没有, 1. 这样设置 虚拟机可以,android机不行 ctx.font = 'bold 14px normal'; 2. 这样子设置 也是同样的问题。 normal normal 14px px sans-serif 就不能给点 例子,或者样例代码。很烦啊
2018-09-12 - canvas无法生成图片到系统相册,显示空白
[图片] - 预期表现 [图片] - 复现路径 // **分享到朋友圈 sharefriend: function (){ var that = this; wx.getSystemInfo({ success:res =>{ console.log('小程序信息', parseFloat(res.version)); if (parseFloat(res.version) < 6.6){ wx.showModal({ title: '提示', content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) return false; }else{ that.setData({ share2: true, share: false }); wx.showLoading({ title: '正在生成图片...', mask: true, }); } } }); // 小程序获取图片信息API wx.getImageInfo({ src: that.data.ctxUrl, success: function (res) { console.log(res); that.setData({ ctxUrl: res.path }) }, fail(err) { console.log(err) } }) setTimeout(()=>{ var canvasCtx = wx.createCanvasContext('myCanvas'); canvasCtx.clearRect(0, 0, 0, 0); //绘制背景 canvasCtx.drawImage('../../img/write.png', 0, 0, that.data.windowWidth * 0.8, that.data.windowHeight * 0.8); //绘制名称 canvasCtx.setFontSize(18); canvasCtx.setTextAlign('center'); canvasCtx.fillText(that.data.ctxName, that.data.windowWidth * 0.8 / 2, 120); // 绘制信息 canvasCtx.setFontSize(18); canvasCtx.setTextAlign('center'); canvasCtx.fillText(that.data.ctxRank, that.data.windowWidth * 0.8 / 6, 180); canvasCtx.fillText(that.data.ctxNum, that.data.windowWidth * 0.8 / 2, 180); canvasCtx.fillText(that.data.ctxPoints, (that.data.windowWidth * 4) / 6, 180); // 绘制信息2 canvasCtx.setFontSize(13); canvasCtx.setTextAlign('center'); canvasCtx.fillText('当前排名', that.data.windowWidth * 0.8 / 6, 200); canvasCtx.fillText('得分', that.data.windowWidth * 0.8 / 2, 200); canvasCtx.fillText('净胜分', (that.data.windowWidth * 4) / 6, 200); // 绘制分割线 canvasCtx.drawImage('../../img/line.png', 0, 240, that.data.windowWidth * 0.8, 15); // 比赛项目:羽神等你来战!丰厚礼品等着你 canvasCtx.setFontSize(12); canvasCtx.setTextAlign('center'); canvasCtx.fillText('比赛项目:羽神等你来战!丰厚礼品等着你', that.data.windowWidth * 0.8 / 2.1, 285); // 绘制二维码 canvasCtx.drawImage('../../img/code.jpg', (that.data.windowWidth * 0.8 / 2) - 50, that.data.windowHeight * 0.585, 100, 100); //绘制头像 canvasCtx.save(); canvasCtx.beginPath(); //开始绘制 canvasCtx.arc(that.data.windowWidth * 0.8 / 2, 58, 38, 0, 2 * Math.PI, false); canvasCtx.clip(); canvasCtx.drawImage(that.data.ctxUrl, that.data.windowWidth * 0.8 / 2 - 38, 20, 76, 76); canvasCtx.restore(); canvasCtx.draw(); wx.hideLoading(); }, 1000) }, // 保存绘制的图片 savePic: function () { var that = this; wx.canvasToTempFilePath({ x: 0, y: 0, width: that.data.windowWidth, height: that.data.windowHeight, destWidth: that.data.windowWidth, destHeight: that.data.windowHeight, canvasId: 'myCanvas', success: function (res) { if (!res.tempFilePath) { wx.showModal({ title: '提示', content: '图片绘制中,请稍后重试', showCancel: false }) } util.savePicToAlbum(that,res.tempFilePath); } }) }, // 关闭绘制 closeShare:function(){ this.setData({ share: true, share2: false }) }
2018-10-08 - canvas fillText 文字不能加粗
画布,需要文字加粗,但设置context.font无效,不知是官方不提供这个效果还是我没找对方法
2018-03-24 - A页面提示用户授权被拒绝,B页面却不再弹窗授权框,怎么处理
因小程序有一个留言反馈的功能需要获取用户的信息,所以需要进行用户授权操作。 在用户第一次进入小程序时,会弹窗提示用户是否授权,用户在此时能同意则很理想。但是如果拒绝了,那么就要再次授权。 假设用户拒绝了授权,用户进入留言界面时,则再次弹窗提示用户授权,否则不能使用该功能。可是我在liuyan.js页面的 onLoad: function (options) {} 中 调用 wx.authorize 接口没任何反应。代码如下 onLoad: function (options) { var that = this wx.login({ success: function (res) { wx.getSetting({ success(setRes) { // 判断是否已授权(用户进入时会判断是否已授权) if (!setRes.authSetting['scope.userInfo']) { // 授权访问 wx.authorize({ scope: 'scope.userInfo', success() { // 用户已经同意小程序使用个人基本信息,后续调用 wx.getUserInfo 接口不会弹窗询问 wx.getUserInfo({ lang: "zh_CN", success: function (userRes) { // 发起网络请求 wx.request({ url: 'http://localhost:8080/fm93/xcx/user.action', data: { code: res.code, encryptedData: userRes.encryptedData, iv: userRes.iv, signature: userRes.signature }, header: { "Content-Type": "application/x-www-form-urlencoded" }, method: 'POST', // 服务端回调 success: function (result) { var sessionKey = result.data; console.log("--sessionKey--" + sessionKey); wx.setStorageSync("session3rd", sessionKey);//存储后台返回的3rdsession } }) } }) }, fail: function () { //用户拒绝授权 // } }) } else { // 获取用户信息 console.log("已授权") } } }) } }) }
2018-03-27 - 微信自定义分享朋友 1.4版本
微信自定义分享朋友 1.4版本 [代码]wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.updateAppMessageShareData({ title: '', // 分享标题 desc: '', // 分享描述 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 success: function () { // 设置成功 } });[代码]该处的link 必须与当前页面对应的公众号JS安全域名一致 第一 如果我在进入某页面想拿到openid必须走网页授权的链接 ,应该怎么实现 ? 该处的link是否可以放网页的授权链接 进行授权
2018-11-26 - wx.canvasToTempFilePath生成图片
预览生成的图片的时候 找不到 tmp 的网页找不到与以下网址对应的网页: 但是另一个项目预览wx.canvasToTempFilePath生成的图片又可以显示
2018-03-01 - 自定义分享时图片部分能否支持网页
- 需求的场景描述(希望解决的问题) 小程序分享时在onShareAppMessage中能够通过imageUrl自定义分享后小程序卡片中的显示的图片,需要显示的图片是固定的话很方便,但是如果图片需要反映页面内容时就需要自己手动生成图片,因为有时候默认的截屏作为分享图满足不了需求,在小程序端和服务端生成图片效率都很低,而且非常麻烦,因此能否支持使用自定义的htmlUrl的方式显示服务侧的网页来作为分享卡片中的图片部分呢?这样的话效率会提高很多。 - 希望提供的能力 分享时支持网页方式
2018-09-11 - 在webview内嵌的网页中想将图片下载到手机相册以及分享到朋友圈
- 需求的场景描述(希望解决的问题) 需要将网页生成一张海报(我目前已经将网页生成了canvas并转化为了一张img),同时提供两个按钮,分别是 将海报下载到手机相册按钮 将海报分享到朋友圈按钮 但是发现jssdk提供的接口都是从本地选取图片的,并没有可以下载图片到本地的。。。也没有想到什么其他的好办法
2018-07-03