- transform: translate(0,300rpx)写在内嵌样式中失效
- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 - 复现路径 - 提供一个最简复现 Demo 见代码片段
2018-12-10 - loadFontFace加载网络字体有大小限制?
字体加载3M左右的远程字体,加载失败。
2022-11-12 - 【重要提议】button组件的chooseAvatar能力的几个问题?
经过测试我们发现chooseAvatar能力有如下问题,望微信团队予以评估,尽早优化: 1、无法通过配置实现“使用微信头像”、“从相册选择”、“拍照”三个选择的显隐; 2、无法通过配置控制“从相册选择”、“拍照”所取得图片是否压缩(默认都是可选择“原图”的,无法屏蔽); 3、最严重的问题:在用户选择非微信头像后,不知基于什么考虑,组件会自动向“http://finder-assistant.mp.video.tencent-cloud.com/snsuploadsimple”这个地址上传用户选择的图片(如下图所示),若用户选择的图片较大,这个过程会非常长,甚至有时还会超时崩溃。更麻烦的是:只有在这个上传过程完成后,组件才会触发bindchooseavatar事件,在此之前,组件没有暴露任何有帮助的事件供开发者进行体验优化。 [图片]。[图片] 个人认为这个chooseAvatar能力上线略显草率,在比较注重体验的小程序中,尚不可用。我们理解微信保护用户隐私的考量,但考虑到10月份即将收回getUserProfile能力,辛苦予以及时优化。
2022-06-19 - 插件内使用wx.getRealtimeLogManager(),日志会上传到哪里?
如题,插件内使用wx.getRealtimeLogManager(),如果有其他小程序申请使用插件,日志会上传到插件所在小程序后台,还是使用插件的小程序的后台?
2020-08-17 - weapp-qrcode-canvas-2d在微信小程序中生成二维码,新版canvas-2d接口
weapp-qrcode-canvas-2d weapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二维码(外部二维码)的js包。canvas 2d 接口支持同层渲染且性能更佳,建议切换使用,可大幅提升生成图片的速度。 仓库地址 weapp-qrcode-canvas-2d【码云gitee】 weapp-qrcode-canvas-2d【github】 [图片] 测试环境 微信小程序基础库版本:2.10.4 开发者工具版本:Stable 1.03.2101150 Usage 先在 wxml 文件中,创建绘制的 [代码]canvas[代码],并定义好 [代码]width[代码], [代码]height[代码], [代码]id[代码] , [代码]type[代码] ,其中type的值必须为[代码]2d[代码] [代码]<canvas type="2d" style="width: 260px; height: 260px;" id="myQrcode"></canvas> [代码] 安装方法1:直接引入 js 文件 直接引入 js 文件,使用 [代码]drawQrcode()[代码] 绘制二维码 [代码]// 将 dist 目录下,weapp.qrcode.esm.js 复制到项目中。路径根据实际引用的页面路径自行改变 import drawQrcode from '../../utils/weapp.qrcode.esm.js' [代码] 安装方法2:npm安装 [代码]npm install weapp-qrcode-canvas-2d --save [代码] // 然后需要在小程序开发者工具中:构建npm [代码]import drawQrcode from 'weapp-qrcode-canvas-2d' [代码] 安装完成后调用 例子1:没有使用叠加图片 [代码]const query = wx.createSelectorQuery() query.select('#myQrcode') .fields({ node: true, size: true }) .exec((res) => { var canvas = res[0].node // 调用方法drawQrcode生成二维码 drawQrcode({ canvas: canvas, canvasId: 'myQrcode', width: 260, padding: 30, background: '#ffffff', foreground: '#000000', text: 'abc', }) // 获取临时路径(得到之后,想干嘛就干嘛了) wx.canvasToTempFilePath({ canvasId: 'myQrcode', canvas: canvas, x: 0, y: 0, width: 260, height: 260, destWidth: 260, destHeight: 260, success(res) { console.log('二维码临时路径:', res.tempFilePath) }, fail(res) { console.error(res) } }) }) [代码] 例子2:使用叠加图片(在二维码中加logo) [代码]const query = wx.createSelectorQuery() query.select('#myQrcode') .fields({ node: true, size: true }) .exec((res) => { var canvas = res[0].node var img = canvas.createImage(); img.src = "/image/logo.png" img.onload = function () { // img.onload完成后才能调用 drawQrcode方法 var options = { canvas: canvas, canvasId: 'myQrcode', width: 260, padding: 30, paddingColor: '#fff', background: '#fff', foreground: '#000000', text: '123456789', image: { imageResource: img, width: 80, // 建议不要设置过大,以免影响扫码 height: 80, // 建议不要设置过大,以免影响扫码 round: true // Logo图片是否为圆形 } } drawQrcode(options) // 获取临时路径(得到之后,想干嘛就干嘛了) wx.canvasToTempFilePath({ x: 0, y: 0, width: 260, height: 260, destWidth: 600, destHeight: 600, canvasId: 'myQrcode', canvas: canvas, success(res) { console.log('二维码临时路径为:', res.tempFilePath) }, fail(res) { console.error(res) } }) }; }) [代码] API drawQrcode([options]) options Type: Object 参数 必须 说明 示例 canvas 必须 画布标识,传入 canvas 组件实例 canvasId 非 绘制的[代码]canvasId[代码] [代码]'myQrcode'[代码] text 必须 二维码内容 ‘123456789’ width 非 二维码宽度,与[代码]canvas[代码]的[代码]width[代码]保持一致 260 padding 非 空白内边距 20 paddingColor 非 内边距颜色 默认与background一致 background 非 二维码背景颜色,默认值白色 [代码]'#ffffff'[代码] foreground 非 二维码前景色,默认值黑色 [代码]'#000000'[代码] typeNumber 非 二维码的计算模式,默认值-1 8 correctLevel 非 二维码纠错级别,默认值为高级,取值:[代码]{ L: 1, M: 0, Q: 3, H: 2 }[代码] 1 image 非 在 canvas 上绘制图片,层级高于二维码,v1.1.1+版本支持。具体使用见:例子2 [代码]{imageResource: '', width:80, height: 80, round: true}[代码]
2023-04-02 - 【干货分享】小程序自定义交易组件开通及打通视频号场景
想要在视频号中拥有交易购物能力,必须接入交易组件,目前包含标准版交易组件和自定义版交易组件两种接入方案,以下是微信给出的对比及适用场景。 [图片] 因为有赞已经为商家小程序提供了完善的电商能力,所以自定义交易组件的方案更适合有赞商家小程序来对接微信视频号。 本文主要分享自定义交易组件开通的流程以及基于有赞场景去接入的时候遇到的一些坑,希望能帮助到大家!~ 一、总流程[图片] 二 、开通微信小程序 这个不必多说,但需要注意的是 1、必须是一个非个人主体的小程序 2、小程序类目需要符合下图要求 [图片] 三、开通微信支付后续的订单创建、同步会拉起微信的收银台完成支付,所以需要小程序开通微信支付的能力 四、检查是否已经开通标准版交易组件标准版和自定义版交易组件是二选一的,所以需要先检查是否开通了标准版交易组件 如果已经开通标准版但没有完成开店任务的话还是可以在微信后台取消使用的; 但如果连开店任务也完成的话,需要先注销(目前微信还没有开放注销功能),如果是有赞的商家的话可以联系有赞客服协助处理 五、授权自定义交易组件权限因为有赞是微信小程序的三方开发服务商,所以需要商家授权自定义交易组件权限,当然如果非服务商开发的话不用关心。 六、申请接入微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/register/apply?access_token=xxxxxxxxx 只需要获取到access_token后请求这个接口即可,接口是同步返回的(历史上是有异步的版本的,这块如果很早接触但没有在维护过的同学要注意了),这个接口请求失败的话可能是以下原因: access_token过期小程序类目不符合已经开通了标准版交易组件七、完成商品接口调试7.1 同步商品类目至微信审核你同步商品的三级类目id以及该类目在微信这边是否要求上传相应的类目资质,需要通过获取微信全量三级类目接口来查询 微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/cat/get?access_token=xxxxxxxxx 根据回参中的 qualification_type 类目资质类型 product_qualification_type 商品资质类型 来判断资质是否需要上传 根据回参中的 qualification 类目资质 product_qualification 商品资质 来查询需要上传资质 将回参中的third_cat_id记录,后续同步商品时会用 需要同步的话,就要调用上传类目资质接口,这是个异步接口,审核结果通过需要通过事件回调获取 微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/audit/audit_category?access_token=xxxxxxxxx 这块资质图片的字段建议先通过上传图片接口换取media_id来传入 7.2 同步品牌至微信审核如果你的同步的商品是一个品牌商品,那么在同步商品之前需要先同步品牌信息至微信审核,在审核通过的回调信息中获取到brand_id,之后同步商品时传入 微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/audit/audit_brand?access_token=xxxxxxxxx 同样的,这块品牌的一些证照图片的字段建议先通过上传图片接口换取media_id来传入 这里导致审核失败的几个原因: 上传证照的图片有问题,譬如有水印、大小超过2M、图片不能正常显示等证照过期 7.3 同步商品至微信审核现在就可以将调用同步商品接口完成商品同步了,也是一个异步接口,需要等审核回调 微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/spu/add?access_token=xxxxxxxxx 这里的tips引用下微信文档上的 注意:[代码]third_cat_id[代码]请根据获取类目接口拿到,并确定其[代码]qualification_type[代码]类目资质是否为必填,若为必填,那么要先调类目资质审核接口进行该[代码]third_cat_id[代码]的资质审核;[代码]qualification_pics[代码]请根据获取类目接口中对应[代码]third_cat_id[代码]的[代码]product_qualification_type[代码]为依据,若为必填,那么该字段需要加上该商品的资质图片;若需要上传某品牌商品,需要按照微信小商店开通规则开通对应品牌使用权限。微信小商店品牌开通规则:点击跳转,若无品牌可指定无品牌(无品牌[代码]brand_id: 2100000000[代码])。库存字段[代码]stock_num[代码]注意如果是0则无法在视频号直播上架该商品。部分特殊品类商品标题需要按照规范上传,请仔细阅读,避免审核不通过。商品标题规则:点击跳转。商品详情字段[代码]desc_info.desc[代码] [代码]desc_info.imgs[代码] 虽然非必填,但一些特殊品类仍然需要上传商品详情,请仔细阅读,避免审核不通过。商品详情规则:点击跳转。 这里应该是有赞场景下去开通自定义交易组件卡点比较严重的一环了,因为有赞的商家基数较大,商品种类较多,所以让商家自己同步一个商品至微信的话很容易被微信审核拒掉。有赞这边给到的一个方案是商家在开通自定义交易组件时,系统会帮商家创建一个简单的测试商品,因为这个商品无类目、无品牌且经验证100%通过商品审核,所以这一环的卡点也就能够被顺利疏通。 八、完成订单接口调试商品同步好后,需要对这个商品用微信支付完成一次交易,并将订单同步至微信 8.1 创建、同步订单因为自定义交易组件历史版本的原因,目前存在两套创建订单并同步至微信的方案 需要后端调用创建订单的微信api获取到ticket,然后小程序获取并通过ticket调用wx.requestPayment来拉起微信收银台(可能会废弃)小程序直接将订单信息通过wx.requestOrderPayment同步给微信,并拉起微信收银台微信这边推荐使用第二套方案 8.2 支付校验1、订单全量同步 如果选择订单全量同步到微信的话,那就不需要支付校验。 2、场景校验后同步 使用scene/check方法先去判断是否为视频号场景(这块后续可能会拓展,交易组件应该还会支持视频号以外的场景),是的话再去同步订单至微信。 这里建议在自定义交易组件接口调试过程中可以全量同步,但后续正常业务下单流程还是通过scene/check方式。因为如果你的小程序商城还支持其他支付方式的话,全量同步订单的话就会有坑,原因是无论你选择哪种创建、同步订单的方式都需要唤起微信支付,这样在原本能支持多种支付方式的场景下只能使用微信支付。 8.3 发布小程序因为创建、同步订单和支付校验有一些小程序的改动,所以小程序还是需要发布版本的。仅是开通流程的话走微信开发者工具也ok。 8.4 支付同步微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/order/pay?access_token=xxxxxxxxx 创建订单并支付成功后调用支付同步接口,就会将订单状态流转待发货 九、完成物流接口调试9.1 订单发货微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/delivery/send?access_token=xxxxxxxxx 9.2 订单收货微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/delivery/recieve?access_token=xxxxxxxxx 十、完成售后接口调试10.1 创建售后微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/aftersale/add?access_token=xxxxxxxxx 10.2 更新售后微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/aftersale/update?access_token=xxxxxxxxx 物流、售后接口的调试,如果只是开通流程的话,建议直接后端自动调用完成,可以减少卡点,帮助快速开通。 十一、完成接入任务11.1 获取接入状态微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/register/finish_access_info?access_token=xxxxxxxxx 回参中的access_info内 spu_audit_success 在商品接口调试成功后会被置为1 pay_order_success 在订单接口调试成功后会被置为1 send_delivery_success 在物流接口调试成功后会被置为1 add_aftersale_success 在售后接口调试成功后会被置为1 11.2 完成所有接入任务微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/register/finish_access_info?access_token=xxxxxxxxx 这个接口可以在上面获取接入状态接口返回的spu_audit_success、pay_order_success、send_delivery_success、add_aftersale_success的字段都为1时一次性调用完成所有。 当下面的任务都被完成后,自定义交易组件就已经完成接入了 6:完成spu接口,7:完成订单接口,8:完成物流接口,9:完成售后接口,10:测试完成,11:发版完成 十二、自定义交易组件接入视频号场景微信接口地址:点击跳转 http请求方式:POST https://api.weixin.qq.com/shop/register/finish_access_info?access_token=xxxxxxxxx 只需要调用场景申请接口来申请视频号场景,然后等待微信申请成功就可以完成自定义交易组件接入视频号了 十三、微信后台添加视频号推广员需要去微信后台添加一个视频号为推广员,然后就可以在这个视频号关联到已经开通自定义交易组件的小程序,关联后就可以上架已经商品同步接口调用通过的商品了。 [图片] [图片]
2021-10-27 - 微信视频号 扩展链接 怎么挂小程序 ?
小程序已做好,视频号也有,小程序已经申请自定义交易组件,已经通过,也已经关联视频号? 视频号发送视频的时候,【扩展链接】只能通过搜公众号连接么? 微信有没有出官方的文档或者是官方工具? 小程序内容怎么放到公众号里面呢?
2021-06-05 - 视频号播放页面怎么挂小程序链接
https://developers.weixin.qq.com/minigame/dev/guide/[图片][图片][图片]
2022-06-01 - 小程序联盟「定向计划」上线
小程序联盟后台(https://union.weixin.qq.com/)新增定向计划功能: 商家:小程序联盟商家端-推广计划-定向计划(用途:商家创建计划、审核推客、查看推广效果)推客:小程序联盟推客端-商品推广-定向推广(用途:推客申请&查看计划、获取推广素材、查看推广效果) 一、功能简介 定向计划是商家为特定推客设置的推广计划,计划内的商品佣金比例仅特定推客可见。 通过该计划,商家可制定差异化的渠道推广策略。 二、操作流程 1)商家在「小程序联盟商家端-推广计划-定向计划」创建计划后,将生成的邀请链接给到推客; 2)推客通过邀请链接报名,并在「小程序联盟推客端-商品推广-定向推广」内查看计划状态; 3)商家审批通过后,推客即可在「小程序联盟推客端-商品推广-定向推广-计划详情页」选择定向商品并推广,佣金将以该商品在下单时的最大佣金比例计算(定向计划佣金、主推商品佣金、类目佣金中取最大值)。 操作详情请参考《定向计划功能指引》。 [图片]
2021-05-26 - 小程序性能优化实践
小程序性能优化课程基于实际开发场景,由资深开发者分享小程序性能优化的各项能力及应用实践,提升小程序性能表现,满足用户体验。
10-09 - 引用TensorFlowJS插件编译不通过
在引入插件TensorFlowJS 0.2.0,并且将tfjs-core(>3.0.0), tfjs-converter(>3.0.0),tfjs-backend-webgl(>3.0.0) 和tfjs-backend-cpu(>3.0.0)包安装完成后,在app.js引入相应组件后(见代码片段),小程序会提示在编译tr46,并且一直编译不通过,直到程序奔溃。 [图片] 单独安装tr46并不会有编译不通过的情况,但是编译tfjs-core会提示tr46在编译中,知道开发程序奔溃。依赖关系:(tfjs-core(>3.0.0)-> node-fetch(>2.6.3)->whatwg-url(5.0.0)->tr46(0.0.3))
2022-04-03 - 小程序地理位置相关接口调整
为进一步规范开发者调用涉用户信息相关接口或功能,保障用户合法权益,平台将对如下地理位置相关接口调用实行准入开通: wx.getLocation、wx.onLocationChange、wx.chooseAddress、wx.chooseLocation、wx.choosePoi 自2022年4月18日开始,如使用以上接口,在代码审核环节将检测该接口是否已完成准入开通(申请路径:小程序管理后台 -「开发」-「开发管理」-「接口设置」),如未开通,将在代码提审环节进行拦截,请涉及相关接口的开发者尽快进行接口权限申请,第三方开发者申请方式:可通过 apply_privacy_interface 接口完成。 请广大涉及相关接口的开发者尽快进行相关接口准入申请,如未申请,后续将影响线上小程序相关接口的使用。
2023-09-26 - 小程序用户信息相关接口调整公告
为进一步规范开发者调用用户信息相关接口或功能,提升用户体验,平台将对部分用户信息相关功能及接口进行调整,具体如下: 访问蓝牙、添加通讯录联系人、添加日历事件需要用户授权小程序处理用户的个人信息,需要获取用户明示同意,平台计划从2022年2月21日24时起对以下接口增加用户授权: 访问蓝牙:调用wx.openBluetoothAdapter、wx.createBLEPeripheralServer,需要授权scope.bluetooth添加通讯录联系人:调用wx.addPhoneContact,需要授权scope.addPhoneContact添加日历事件:调用wx.addPhoneRepeatCalendar、wx.addPhoneCalendar,需要授权scope.addPhoneCalendar开发者可在平台调整前提前增加使用 wx.getSetting 获取用户当前的授权状态的逻辑,若授权状态为false可以调用 wx.openSetting 打开设置界面,引导用户开启授权。 授权功能详细说明可参考:官方文档 <open-data>组件功能调整开发者在未获取用户明示同意的情况下通过 <open-data>组件 在小程序中展示用户个人信息,用户容易误以为自己的个人信息在未授权的情况下,被小程序获取。平台计划从2022年2月21日24时起回收通过<open-data>展示个人信息的能力,若小程序需收集用户昵称头像等信息,可以通过 头像昵称填写功能 功能进行收集。具体回收方式为: 头像展示 灰色头像用户昵称展示“微信用户”用户性别、地区、语言展示为为空(“”)小程序通过<open-data>展示群名称能力保留,平台会针对小程序生命周期内首次调用该组件展示群名称向用户提示:“群名称仅你可见,小程序无法获取。” 获取手机号能力安全升级此前小程序获取用户手机号是通过基础库接口直接获取encryptedData后进行解密。从基础库2.21.2版本起,回调参数中增加code参数,开发者获取code参数后,通过服务端auth.getPhoneNumber接口,使用code换取encryptedData,用于解密手机号。 为不影响开发者现有逻辑,原有基础库接口中的encryptedData参数依旧保留,建议开发者尽快使用新的方式获取用户手机号。 详细功能描述可参考 官方文档 微信团队 2021年12月27日
2023-09-26 - onShareAppMessage分享时 path的参数最大的长度是多少?
小程序中 onShareAppMessage分享时 path的参数最大的长度是多少
2020-01-15 - 小程序是否可以通过url引入外部wxss和js文件?
如题,因为包过大,所以想把wxss和js文件放在服务端,小程序能否通过url引入这些文件?
2019-09-03 - 关于小程序安全测试的通知
为进一步提升小程序的安全性和用户体验,目前平台正在对提审的小程序进行安全测试,以便能及时帮助开发者发现小程序可能存在的安全漏洞。 一、背景介绍 小程序在开发过程中若存在安全漏洞的情况,如敏感数据篡改、拖库信息泄露、WEB攻击等,容易造成小程序的安全隐患,可能带来代码易被反编译,核心业务逻辑被破译,算法易被二次打包等风险。因此,平台将对提审的小程序进行安全测试,以协助开发者提升小程序服务的安全性。 二、测试过程 安全测试过程中,平台会模拟真实业务场景,向提审小程序的后台发送服务请求,服务器会收到来自平台(显示为:Tencent Security Team,请求IP为106.55.202.118;113.96.223.69;125.39.132.125)的测试请求。测试均以较低速率进行,正常情况下不会影响小程序的正常服务。特殊情况下如有必要,开发者可基于自身业务情况,对相应请求加以限频,如有其他疑问,欢迎随时通过官方社区进行反馈。 三、测试结果 安全测试的结果是小程序审核的重要参考。若小程序在安全测试中被检测到存在安全漏洞,该小程序的审核将不予通过。开发者可根据修改指引,对安全漏洞进行相应修复后,再重新进行提审。
2021-11-01 - IOS scroll-view中的自定义组件fixed问题
这个是正常现象,因为 iOS 下加了 -webkit-overflow-scrolling: touch,这个会产生滚动惯性,体验更好,但会改变 fixed 的行为,建议不在 scroll-view 里有 fixed 元素
2020-04-23