initCanvas 应该传 wx.getSystemInfoSync().pixelRatio 而不是固定值 1 [图片]
canvasToTempFilePath部分ios手机导出图片裁剪?真机截图(正常): [图片] iphone 7中截图(图片发生了裁剪): [图片] 核心代码片段(具体见代码片段:https://developers.weixin.qq.com/s/fUJ4d3m17UxT): <view class="page"> <canvas type="2d" style="width:{{canvasWidth}}px;height:{{canvasHeight}}px;" id="myCanvas" class="myCanvas" ></canvas> <image src="{{imageSrc}}" mode="widthFix"></image> </view> const app = getApp() Page({ data: { imageSrc: "", canvasWidth: '', canvasHeight: '', imageSrc:"" }, onLoad: async function () { let imageSrc = './1.jpg'; let imageInfo = await this.getImageInfo(imageSrc); let r = 2.165914247136675; let canvasWidth = Math.abs(imageInfo.width / r); let canvasHeight = Math.abs(imageInfo.height / imageInfo.width*canvasWidth); this.setData({ canvasWidth, canvasHeight },async ()=>{ let { canvas, context } = await this.initCanvas('#myCanvas', 1); let img = await this.createImage(canvas, imageSrc); context.drawImage(img, 0, 0, imageInfo.width, imageInfo.height, 0, 0, canvasWidth, canvasHeight) let src = await wx.canvasToTempFilePath({ x: 0, y: 0, width:canvasWidth, height:canvasHeight, destWidth:canvasWidth, destHeight:canvasHeight, canvas, success:(res)=>{ this.setData({ imageSrc:res.tempFilePath }) } }) }) }, getImageInfo(src) { return new Promise(async (resolve, reject) => { wx.getImageInfo({ src, success: (result) => { resolve(result); }, fail: (e) => { reject(e); } }); }); }, initCanvas(selector, dpr) { return new Promise((resolve, reject) => { wx.createSelectorQuery() .select(selector) .fields({ node: !0, size: !0 }) .exec((res) => { let canvasWidth = res[0].width; let canvasHeight = res[0].height; let canvas = res[0].node; let context = canvas.getContext('2d'); canvas.width = canvasWidth * dpr; canvas.height = canvasHeight * dpr; context.scale(dpr, dpr); resolve({ context, canvas, canvasWidth, canvasHeight }); }); }); }, createImage(ctxNode, imageSrc) { return new Promise((resolve, reject) => { const img = ctxNode.createImage(); img.src = imageSrc; img.onload = () => { resolve(img); }; }); } }) drawImage这一步是正常的,就是canvasToTempFilePath的时候发生了裁剪
2022-02-14不是文娱类的视频,提交审核时备注一下。PS:小程序的所有视频是我们公司的产品介绍视频等等。
小程序视频服务类目判定界线?有些电子名片小程序含有视频内容,为啥不需要视频服务类目就能审核通过,这个判定界线是以什么为标准的,视频数量,还是什么,谢谢
2022-01-18你干啥了,为什么被封
申诉审核下吧 你们是祖宗 行了吗?三天了 你们让我怎么改我就怎么改了!你们审核下吧 行吗?祖宗们 今年线下已经不好做了 好不容易转到线上刚把客户笼络下 你们到底想干什么呀?那明显是同行恶意举报 我连源码都找人重写了 审核下吧 给人一条活路吧!给老百姓一条活路吧 你们到底想干什么?wxe22ccab4a50f016a
2022-01-14去年说12月份会上线,刚问客服了,说春节前会上线(大几率还是会咕咕咕吧)。 [图片][图片] 你好,小商店注销功能内测中,若需完成注销,请按以下邮件内容发送至小商店官方邮箱申请人工注销,感谢理解。 【邮件内容】 标题:小商店人工注销申请 收件人:MiniProgram@tencent.com 小商店名称: Appid: 小商店账号绑定手机号: 小商店账号绑定微信号: xxxx(小商店名称)承诺不再于微信小商店进行经营,并已下架所有在售商品,已完成资金转出,已处理完成进行中的订单及售后投诉单,已经删除所有店员,导购管理员和导购员。 *如希望再次产生小商店经营行为,将不再支持同个微信账号注册申请。 附(强制要求项): 本人手持身份证正反面照片 注销将在三~七个工作日内完成,请商家提交邮件后耐心等待~ 如希望再次产生小商店经营行为,将不再支持同个微信账号注册申请。 强制性注销将不再支持同微信号注册
如何从标准版交易组件,更改位自定义版交易组件?去年将小程序打通视频号,当时开通也是费尽周折。最后感谢管理员帮忙,成功打通。 规则改的太快,没有两个月,原有小程序又无法对接视频号了。 按照我现用小程序对接视频号要求,需要将小程序中功能-交易组件-从标准版交易组件,更改为自定义版交易组件。但是我点击取消开通,系统提示我“已经完成开张任务,不支持取消”。请问我应该如何解决?希望尽快将小程序产品对接视频号,谢谢! 我现用小程序对接说明:https://tnci.yuque.com/docs/share/a6770f9f-cafa-4f88-b4a8-b5785c61dc25 [图片]
2022-01-14别问了,通过明文链接进入都这样。你把地址收藏,从微信收藏进入就不会
jssdk分享的自定义内容在QQ上能正常展示,在微信不展示自定义内容,只有一个链接,问题该怎么解决?接了jssdk的分享功能,前面都正确配置,如图所示,,然后配了自定义的title,描述,图片url等,分享到QQ能正常展示,如图, [图片],但是分享到微信好友,就不展示自定义内容,只有一个链接[图片]
2022-01-13系统自带的,可以自己到设置里边去关闭。微信小程序没有这种接口给你去关
苹果底部按钮被苹果黑条遮挡怎么处理?有人知道苹果手机按钮这个怎么处理吗?网上的方法都试过了没用。有大佬知道怎么解决吗?[图片]
2022-01-13没取消监听
wx.enableAlertBeforeUnload这应该算一个bug吧?我在publish页面的onLoad使用wx.enableAlertBeforeUnload,写一个提示窗返回上一页tabBar 页面,为啥在这个tabar页面进入其他页面,[图片]返回上一层页面这个弹窗也会出来? [图片][图片]
2022-01-13已知问题,正在修复中(已经过去3个月还没修好) https://developers.weixin.qq.com/community/develop/issue/338
page-container组件进入无动画使用page-container组件时必须加上bind:enter(进入中触发事件)才会有进入动画效果
2022-01-13对,存起来有关联才行
如何通过手机号获得接收者openid?模板信息发送?新人入门?如何通过手机号获得接收者openid?需要运用数据库来储存用户手机号和openid吗?
2022-01-12要
海外版 服务号 微信开发 中 URL 是否需要ICP 备案?申请了个 海外版 。想做微信开发。但 配置中的URL 是否需要ICP 备案才能开发
2022-01-12