- 小程序登录、用户信息相关接口调整说明
公告更新时间:2021年04月15日考虑到近期开发者对小程序登录、用户信息相关接口调整的相关反馈,为优化开发者调整接口的体验,回收wx.getUserInfo接口可获取用户授权的个人信息能力的截止时间由2021年4月13日调整至2021年4月28日24时。为优化用户的使用体验,平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。请使用了wx.getUserInfo接口或<button open-type="getUserInfo"/>的开发者尽快适配。开发者工具1.05.2103022版本开始支持getUserProfile接口调试,开发者可下载该版本进行改造。 小游戏不受本次调整影响。 一、调整背景很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。 二、调整说明通过wx.login接口获取的登录凭证可直接换取unionID 若小程序已在微信开放平台进行绑定,原wx.login接口获取的登录凭证若需换取unionID需满足以下条件: 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用2月23日后,开发者调用wx.login获取的登录凭证可以直接换取unionID,无需满足以上条件。 回收wx.getUserInfo接口可获取用户个人信息能力 4月28日24时后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。 具体变化如下表: [图片] 即wx.getUserInfo接口的返回参数不变,但开发者获取的userInfo为匿名信息。 [图片] 此外,针对scope.userInfo将做如下调整: 若开发者调用wx.authorize接口请求scope.userInfo授权,用户侧不会触发授权弹框,直接返回授权成功若开发者调用wx.getSetting接口请求用户的授权状态,会直接读取到scope.userInfo为true新增getUserProfile接口 若开发者需要获取用户的个人信息(头像、昵称、性别与地区),可以通过wx.getUserProfile接口进行获取,该接口从基础库2.10.4版本开始支持,该接口只返回用户个人信息,不包含用户身份标识符。该接口中desc属性(声明获取用户个人信息后的用途)后续会展示在弹窗中,请开发者谨慎填写。开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。 插件用户信息功能页 插件申请获取用户头像昵称与用户身份标识符仍保留功能页的形式,不作调整。用户在用户信息功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。 三、最佳实践调整后,开发者如需获取用户身份标识符只需要调用wx.login接口即可。 开发者若需要在界面中展示用户的头像昵称信息,可以通过<open-data>组件进行渲染,该组件无需用户确认,可以在界面中直接展示。 在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。 微信团队 2021年4月15日
2021-04-15 - 地理位置接口新增与相关流程调整
一、地理位置接口新增说明 由于精确地理位置接口只允许部分类目的小程序申请使用,为了满足开发者在更多场景使用地理位置接口,自 2022 年 7 月 14 日起,新增获取模糊地理位置接口(wx.getFuzzyLocation)。同时为保障用户合法权益,该接口调用前需进行准入开通申请,该接口准入规则与 wx.chooseLocation 一致。 wx.getFuzzyLocation 接口说明: 1、该接口返回的是经过模糊处理的经纬度坐标; 2、该接口支持返回 wgs84 或 gcj02 两种类型的坐标; 3、该接口需要用户授权 scope.userFuzzyLocation。 二、app.json 的配置指引 为了开发者能够正常使用获取模糊地理位置等接口,以及后续对于代码提审环节的优化(见「三、地理位置接口使用流程」),自 2022 年 7 月 14 日起,开发者在使用地理位置相关接口时(共计 8 个,见表1),需要提前在 app.json 中进行配置。 1、需配置的接口列表 [图片] 表1 2、配置规则 1)在代码中使用的地理位置相关接口(共计 8 个,见表1),开发者均需要在 app.json 中 requiredPrivateInfos 配置项中声明,代码格式如下: [图片] 2)表1中模糊位置信息(序号1)和精确位置信息(序号2-5)是互斥的,即声明了模糊位置信息就无法声明精确位置信息。若同时声明模糊位置信息和精确位置信息,则在编译代码时出现错误; 3)注意:自 2022 年 7 月 14 日后发布的小程序,如果未在 app.json 中声明表1中的相关接口,则小程序调用这些接口(表1)时会出现错误,在 2022 年 7 月 14 日之前发布的小程序不受影响; 4)对于第三方开发者,需要在上传代码时通过参数在 ext.json 中声明其需调用的地理位置相关接口,配置规则和普通小程序的配置规则相同。 三、地理位置接口使用流程 自 2022 年 7 月 14 日起,开发者如需在最新版本发布后使用地理位置相关接口,除需完成接口权限开通外,还需在 app.json(或ext.json)配置环节,具体如下: 1、接口权限开通 以下 8 个接口需完成准入开通流程:wx.getFuzzylocation、wx.getLocation、wx.onLocationChange、wx.chooseAddress、wx.choosePoi、wx.chooseLocation、wx.startLocationUpdate、wx.startLocationUpdateBackground 1)普通开发者:需要在 “小程序管理后台 -「开发」-「开发管理」-「接口设置」” 中完成权限申请; 2)第三方开发者:可通过 apply_privacy_interface 接口完成权限申请。 2、app.json(或 ext.json)配置 1)普通开发者:需在 app.json 中声明其需调用的地理位置相关接口,具体配置流程见「二、app.json 的配置指引」; 2)第三方开发者:需要在上传代码时通过参数在 ext.json 中声明其需调用的地理位置相关接口(配置方式:可通过 commit 接口配置)。 同时,为了提升开发者体验,平台在代码提审环节会协助开发者对地理位置接口进行检测,如检测出代码中包含未完成准入开通的地理位置接口,平台将再次提醒开发者确认是否需使用相关接口。 1)普通开发者:若无需使用,开发者可在提审时确认不使用该接口,即可正常进行代码提审。小程序审核通过且新版本发布完成后,平台将对小程序确认不使用的接口关闭使用权限; 2)第三方开发者:若无需使用,可在提审时通过参数声明不使用该接口(声明方式:可通过 submit_audit 接口配置),即可正常进行代码提审,审核通过后发布上线,将对其声明不使用的接口关闭使用权限。 以上调整将仅对所有小程序生效。 微信团队 2022年6月1日
2023-09-26 - 关于微信安卓端网页字体适配的通知
为了提供给用户更好的阅读体验,微信安卓版 7.0.10 版本起,网页的字体会跟随微信设置里的字体大小更改而变化。 若调整字体变大或变小后,部分未适配网页的排版会出现显示错乱,建议未进行适配的开发者尽快完成对“ 字体大小” 的适配。 查看网页在字体不同大小下展示效果的方法: 方法1:"设置">"通用">“字体大小">进行字体大小修改后查看对应网页显示效果。 方法2:在微信内访问对应网页右上角”…">底部菜单栏选择调整字体">进行字体大小修改后查看对应网页显示效果。 另外,对于现有的显示问题,我们提供以下方案让开发者临时将字体还原标准大小。同时,开发者可以在页面中提示用户在右上角”…”更多菜单中修改字体到合适的大小。 下列方案可以将字体还原标准大小,但我们仍然建议后续做字体适配来提高用户的阅读体验。 『字体还原标准大小』方案: 我们提供了一个 JSAPI 用于设置字体大小,只需将字体大小等级设置为 2 (标准)即可,代码示例如下: document.addEventListener("WeixinJSBridgeReady", function () { WeixinJSBridge.invoke("setFontSizeCallback", { fontSize: '2' }); }, false); 此外,若页面是用 rem 单位进行排版的(目前该做法更容易导致页面不可用),可以反向重置 font-size 的数值达到还原字体标准大小的目的,此方法在效果上也比较理想。代码示例如下: // 以下代码思路来源网络。同时代码放在 body 标签开头位置效果最佳 var $dom = document.createElement('div'); $dom.style = 'font-size: 10px'; document.body.appendChild($dom); // 计算出放大后的字体 var scaledFontSize = parseInt(window.getComputedStyle($dom, null).getPropertyValue('font-size')); document.body.appendChild($dom); // 计算原字体和放大后字体的比例 var scaleFactor = 10 / scaledFontSize; // 取 html 元素的字体大小 var originRootFontSize = parseInt(window.getComputedStyle(document.documentElement, null).getPropertyValue('font-size')); // 由于设置 font-size 后实际会变大,故 font-size 需设置为更小一级 document.documentElement.style.fontSize = originRootFontSize * scaleFactor * scaleFactor + 'px';
2020-01-14 - 社区每周 | 网页字体适配方案、小程序搜索优化指南、社区上周问题反馈(12.23-12.27)
各位微信开发者: 以下是小程序搜索优化指南、网页字体适配方案及上周我们在社区收到的问题反馈、需求的处理进度,希望同大家一同打造小程序生态。 小程序搜索优化指南(SEO) 2019年上半年微信发布了基于小程序页面的搜索,为了让我们更好地发现及理解小程序的页面,结合过去一段时间来我们遇到的各种情况,建议各位开发者阅读《小程序搜索优化指南》并结合实际情况进行优化。 网页字体适配方案 微信安卓版 7.0.10 版本起,网页的字体大小会跟随微信全局设置里的字体大小。若用户设置了较大字体后,可能导致网页的排版出现错乱,建议开发者做好较大字体的适配。详情请查看《关于微信安卓端网页字体适配的通知》。 上周问题反馈和处理进度(12.23-12.27) 已修复的问题 微信公众平台测试号管理页面跳转连接问题 查看详情 开放社区-我的主页,编辑个性签名后无法保存的问题 查看详情 社区编辑文章,保存草稿提示提交太频繁的问题 查看详情 社区等级被清零的问题 查看详情 前一天发布的文章在列表里不见的问题 查看详情 文档搜索不了内容的问题 查看详情 关于微信小游戏后台订阅消息申请模版问题 查看详情 微信git仓库报500了的问题 查看详情 后台发布不了新版本的问题 查看详情 微信公众平台发生错误的问题 查看详情 修复中的问题 社区文章编辑器的样式与消息的样式冲突 查看详情 movable-view 组件在 scale 开启的时候,设置偏移值的问题 查看详情 vivo手机出现大量黑屏的问题 查看详情 消息模块少了个}的问题 查看详情 微信7.0.8,部分 iphone 机型出现文字显示黑块的问题 查看详情 视频广告播放过程中,如果断网,无法再次拉起的问题 查看详情 文档内嵌文档入口404,第三方平台》小程序管理》提交代码的问题 查看详情 开发工具使用「预览-自动预览」时,自定义编译模式中获取参数错误的问题 查看详情 wx.startAccelerometer() 安卓手机设置 interval 无效的问题 查看详情 微信更新到7.0.9后 小游戏闪屏的问题 查看详情 innerAudioContext.duration Android无法获取时长的问题 查看详情 wx.addPhoneContact 点“取消”无法返回的问题 查看详情 真机调试,只有我的开发者账户可以获取授权提示,其他人都提示未使用您任何信息的问题 查看详情 iOS 真机 锁屏或切换后台程序后再打开,input focus为true 唤不起键盘的问题 查看详情 canvas.toTempFilePathSync 截图为全黑色(部分手机出现该问题)的问题 查看详情 安卓部分机型 wx.chooseImage 时无法回调 complete 的问题 查看详情 基础库2.10.0中的 textarea 引入了新的 feature 的问题 查看详情 wx.requestSubscribeMessage 调用后弹起的弹窗按钮没有文案的问题 查看详情 为什么升级到微信7.0.9版本后,支付插件无法唤起支付弹框的问题 查看详情 小程序支付插件内唤起的微信支付功能页面内,点击立即支付无反应的问题 查看详情 调用接口查询小程序提审额度提示 system error 的问题 查看详情 小程序是否可以支持从微信聊天窗口选择聊天记录的需求 查看详情 稳定在线好几个月没更新的游戏,今天突然开始大量报出 readFileSync 的错误的问题 查看详情 微信版本(7.0.9)中小程序使用支付插件,支付功能页中点击'立即支付'按钮,无法弹出支付弹窗 查看详情 官方文档页面左侧菜单显示异常的问题 查看详情 微信小游戏闪退的问题 查看详情 切后台时间稍长,再重连 websocket 就会失败,提示 jsapi has no permission 的问题 查看详情 iOS最新版7.0.9微信,获取cameraFrame数据时,内容发生了变形 查看详情 小程序插件不能支付,点击“立即支付”,直接返回上一个页面的问题 查看详情 来源识别的部分多了个空格的问题 查看详情 生命周期 onload 里面调用 wx.hideLoading 失效的问题 查看详情 格式化代码无效的问题 查看详情 需求反馈 需求评估中 出个自助解绑原先绑定小程序的功能的需求 查看详情 live-play 局部放大的功能的需求 查看详情 小程序调试的 vConsole 中增加查看Storage的功能 查看详情 改善微信使用体验感的需求 查看详情 云函数续费方式网页续费方式的需求 查看详情 wx.onLocationChange 加个周期参数的需求 查看详情 在类目政务民生-司法下添加长期订阅模版的需求 查看详情 微信团队 2020.01.03
2020-01-03 - 小程序代码包总包上限提升至12M、新增内置扩展库支持
小程序代码包总包上限提升至12M为了让开发者开发出功能更丰富的小程序,小程序或小游戏代码包总包上限由8M提升到12M。建议开发者优化小程序性能并将每个分包做得尽可能小,以便提升用户的打开速度,优化用户体验。 开发者可登录开发者工具,在详情-项目配置中点击刷新按钮,获取最新的配置信息。 [图片] 内置扩展库支持扩展库是将官方提供的一系列扩展能力打包而成的一些类库。为方便开发者使用,我们在最新的nightly版开发者工具支持了内置扩展库,开发者只需在app.json配置文件声明引用指定扩展库即可,无需自行引入相关 npm 包且不计入小程序代码包大小,目前支持了kbone和WeUI两种扩展库,更多详情请参考文档。 欢迎各位开发者接入,如有问题,可在本帖下方留言或在社区发帖反馈。 微信团队 2019.11.22
2019-11-22 - 小程序模板消息能力调整通知
小程序模板消息能力在帮助小程序实现服务闭环的同时,也存在一些问题,如: 1. 部分开发者在用户无预期或未进行服务的情况下发送与用户无关的消息,对用户产生了骚扰; 2. 模板消息需在用户访问小程序后的 7 天内下发,不能满足部分业务的时间要求。 为提升小程序模板消息能力的使用体验,我们对模板消息的下发条件进行了调整,由用户自主订阅所需消息。 一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 [图片] (一次性订阅示例) 长期性订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。 调整计划 小程序订阅消息接口上线后,原先的模板消息接口将停止使用,详情如下: 1. 开发者可登录小程序管理后台开启订阅消息功能,接口开发可参考文档:《小程序订阅消息》 2. 开发者使用订阅消息能力时,需遵循运营规范,不可用奖励或其它形式强制用户订阅,不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档:《小程序订阅消息接口运营规范》 3. 原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法使用此接口发送模板消息,请各位开发者注意及时调整接口。 微信团队 2019.10.12
2019-10-13 - 微信开放平台发布新版本SDK,请开发者尽快更新
为适配 iOS 及安卓系统版本升级,微信开放平台发布新版本SDK,请开发者及时更新。 一、iOS系统 由于苹果iOS 13系统版本安全升级,微信SDK在1.8.6.1版本进行了适配,支持通过Universal Links方式跳转完成应用安全校验,提升使用流程安全性。查看接入文档 接入指引如下: 1. 更新iOS 1.8.6.1版本SDK,前往下载SDK工具包 2. 按苹果官网的要求,创建应用的Universal Links服务,参考Universal Links苹果官方文档 3. 登录微信开放平台,填写应用的Universal Links信息 [图片] 二、安卓系统 为适配Android 10系统,微信发布5.5.8版本SDK,前往更新 平台预计从2020年起,逐步回收旧版本SDK的能力,为避免应用无法正常使用微信相关功能,请开发者尽快升级。
2019-12-24 - 微信连Wi-Fi功能调整通知
各位开发者: 基于操作系统如iOS 13及Android Q针对Wi-Fi能力的安全策略调整,微信所提供的“portal鉴权连Wi-Fi”能力将受到影响。现发出公告。具体变更如下: 2019年08月19日起,“公众号连Wi-Fi”暂停微信portal鉴权连网方式,不再提供wifi关联公众号的功能配置后台及接口,回收第三方平台微信连Wi-Fi权限集。此外,其他功能不变,“扫二维码连网”模式依然可以正常使用。 请各位开发者及时调整,以免影响业务功能。(以下红框内容为调整功能) [图片] [图片] Android Q文档可见: Android Q 隐私权:相机和网络连接变更 Android Q 隐私权:数据和标识符变更 微信团队 2019.07.19
2019-07-22 - 微信卡券“网页链接跳转”能力即将下线通知
各位开发者: 为了确保微信生态良性发展,微信卡券将于2019年8月13日下线网页链接跳转能力。下线后,卡券创建流程中,“自定义入口”与“卡券详情>立即使用跳转”不再支持跳转至网页配置,你可尝试使用跳转小程序作为替代。本次调整仅针对券,会员卡原有能力暂时不变。 给你带来不便,敬请谅解。感谢你的理解和支持。 微信团队 2019年7月26日
2019-07-26 - 「小程序·云开发」功能更新和问题反馈
各位开发者: 大家好 由于近期小程序·云开发将上线付费功能(付费功能针对非基础资源配额,基础资源配额仍可免费使用)。为了给开发者更充足的时间进行调整,对于截止 2019-06-21 日前通过邮件申请调整的配额(非基础资源配额)的截止日期统一延长至 2019-08-31。 为了方便开发者进行功能开发并提高开发效率,「小程序·云开发」近期进行了一系列的功能优化。开发者可通过下载最新 Nightly Build 版的开发者工具进行功能体验。 同时,为了给开发者提供更优质的服务,我们诚邀大家参加小程序·云开发问卷调查。我们将根据问卷调查中的反馈信息调整后续版本的功能,感谢大家的支持! 欢迎开发者填写小程序·云开发调查问卷。 基础能力 数据库高级操作:数据库高级操作是小程序·云开发提供的一种十分灵活的数据库操作能力。通过数据库高级操作,开发者可以更加便捷和高效地对数据库中的大量数据进行进行增删查改/CRUD操作。 [图片] 云函数支持单文件更新:为了优化云函数代码的上传体验,云函数新增单文件更新功能。开发者可在需上传文件右键选择云函数增量上传体验单文件更新能力。 [图片] 云函数获取当前环境:小程序·云开发提供 getWXContext 方法用于在云函数中获取微信调用上下文(AppID、环境ID、openid 以及 unionid),使开发者可以更灵活的使用多套资源环境。 云调用:云调用是云开发提供的基于云函数使用小程序开放接口的能力,目前覆盖服务端调用、开放数据等场景。进一步降低了小程序的开发门槛 HTTP API:HTTP API 是云开发提供的一种小程序外访问云开发资源的能力。使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发资源的互通。 开发调试 Network 面板展示云开发请求信息:从微信开发者工具 1.02.1905302 及基础库 2.7.1 起,在小程序 Network 面板中会显示云开发请求信息,包括调用所实际请求的环境 ID、请求体、JSON 回包、耗时、及调用堆栈。 [图片] 本地调试:云函数开发可以不再需要频繁上传测试,只需用 IDE 在本地调试完成再上传到现网验证。开发者可在云函数根目录右键选择本地调试来开启本地调试界面。 微信团队 2019.06.21
2019-06-21 - 微信证件OCR识别能力开放
微信证件OCR识别能力是微信团队推出的一套提升移动端快捷信息录入的工具,目前支持身份证、银行卡、行驶证、驾驶证、营业执照 OCR 识别。经过持续迭代优化,现在对外开放接入测试。 使用场景 微信证件OCR广泛适用于政务、医疗、交通、教育、金融等各行各业,涉及到需要用户输入身份信息、银行卡信息、车辆信息场景时,即可通过OCR识快速识别、输入信息,极大提高输入效率,提高用户体验。 以下为开通插件的部分小程序案例:国家发展改革委政务服务、安徽省统一公共支付平台、南航e行、湖南电信网上营业厅、中国国际航空、厦门航空、上海客运总站、沃尔玛、青岛银行信用卡等。以下是部分使用场景的截图: [图片] [图片] [图片] 业界领先的识别水准 微信证件OCR历经v1.0版本(基于传统的版面分析, 单字切分, 字符分类算法),v2.0 (基于深度学习的卡片定位, 文字定位, 单字切分, 字符分类),到现在的v3.0版本(基于深度学习的卡片定位, 文本行定位, 串识别),不断优化OCR的识别精度, 取得了业界领先的识别水准。可以轻松应对在移动端拍照/扫描的情况,诸如拍摄角度、光照、阴影、遮挡等的干扰。 可以扫码体验我们的demo小程序 [图片] 灵活易用的调用方式 目前有两种调用方式:小程序插件方式和云端API的方式。 对于对交互没特殊需求的开发者,可以直接使用我们的小程序插件;有订制化需求的,也可以直接使用我们的云端API方式;后续我们也会把这个升级成小程序的基础能力,做成类扫码的体验,进一步简化接入和调用流程。合作与开放 内测期间,对于已认证的订阅号、服务号、企业号、小程序,我们提供了 500 次/天 的免费额度供开发者使用。如免费额度无法满足使用需求,开发者可以【申请调整 OCR 接口调用次数上限】为主题,发送邮件至:wx_city@tencent.com 申请调整,并在正文中注明小程序帐号 AppID、业务主体、业务背景、服务流程载体、日调用量预估。调整的额度仅在内测期间有效。有任何意见或者反馈,都可以在微信开放社区上联系我们,以便于我们更加了解客户对OCR的需求精确度以及需求场景,从而不断迭代优化OCR版本,拓展OCR服务的范围,如支持更多的场景需求: 发票识别、名片识别、街景识别等等。 微信团队 2019/07/03
2019-09-19