收藏
回答

隐私政策好好的 突然所有的组件权限又用不了了 比如图片上传打不开等等这是为什么?

[渲染层错误] Thu Apr 09 2026 11:27:16 GMT+0800 (中国标准时间) 社区相关帖子推荐

 原报错信息: getPhoneNumber:fail privacy permission is not authorized or buttonId is wrong,errno:104 

 请适配小程序隐私保护指引

 关于上述报错,点击查看更多信息:https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801(env: Windows,mp,2.01.2601082; lib: 3.13.2)

回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    18小时前

    appid提供下

    18小时前
    有用
    回复
  • 111
    111
    1天前

    一、最推荐:全局隐私授权弹窗(不用每个页面加按钮)

    微信提供 <button open-type="openPrivacyAuthorization">可以直接弹出官方隐私授权弹窗,用户点同意后,整个小程序所有隐私接口都恢复正常。

    代码最简版

    wxml

    <button
      open-type="openPrivacyAuthorization"
      @agreeprivacyauthorization="onAgree"
    >
      开启权限
    </button>
    

    js

    onAgree() {
      console.log('用户已同意隐私政策,所有隐私接口可用')
    }
    

    特点:

    • 一次授权,全小程序生效
    • 不用写自定义弹窗
    • 不会报 buttonId 错误、errno 104

    二、自动检测授权状态 + 静默唤起(用户体验最好)

    在 app.js 或页面 onShow 里检测是否已授权,未授权则自动弹授权框。

    js

    wx.getPrivacySetting({
      success: res => {
        // needAuthorization: true 说明还没授权
        if (res.needAuthorization) {
          wx.openPrivacyAuthorization({
            success: () => {
              console.log('自动授权完成')
            }
          })
        }
      }
    })
    


    优点:

    • 不用用户手动点按钮
    • 进入页面自动弹一次
    • 授权后永久有效(直到清除小程序缓存)

    这是目前最稳、最通用、不会突然失效的方案。

    三、改用隐私授权组件 <privacy-panel>

    微信官方隐私面板组件,不会出现 buttonId 错误。

    wxml

    <privacy-panel bindagreeprivacy="onAgree">
      <view slot="content">
        为使用上传、获取手机号等功能,请同意隐私政策
      </view>
    </privacy-panel>
    


    优点:

    • 官方原生组件,不会被微信规则封杀
    • 不会报 104、buttonId 错误
    • 适配所有基础库 ≥3.3.0

    四、后台隐私协议重新提交发布(很多人忽略)

    有时候不是前端问题,而是:

    • 你后台隐私政策勾选的权限不全
    • 隐私政策未发布 / 审核中
    • 微信隐私规则更新,旧配置自动失效

    进入:mp.weixin.qq.com → 开发 → 开发设置 → 用户隐私保护指引重新勾选所有用到的权限 → 提交 → 发布

    很多人 “突然不能用” 就是这个原因。

    五、强制清除授权状态 + 重新授权(解决诡异缓存问题)

    开发者工具:清缓存 → 清授权缓存 → 清文件缓存 → 重新编译

    真机:删除小程序 → 重新进入

    授权状态一旦错乱,会一直报 104,清掉就恢复。

    六、降级基础库(临时应急)

    你的基础库是 3.13.2部分版本隐私校验逻辑有 bug,可临时切到:

    • 3.10.4
    • 3.12.2
    • 3.11.1

    这些版本隐私授权最稳定。

    七、如果你只是想 “快速恢复功能”,最强方案

    直接在 app.js 的 onLaunch 里加上:

    js

    wx.getPrivacySetting({
      success(res) {
        if (res.needAuthorization) {
          wx.openPrivacyAuthorization()
        }
      }
    })
    

    用户一进小程序就自动弹隐私授权,弹完所有接口立刻恢复。不会出现任何 buttonId 错误、104 错误、上传失败。


    1天前
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    1天前
    有用
    回复
  • 嘿,风没停呢!
    嘿,风没停呢!
    1天前

    隐私政策是好的 没有打回,突然用的好好的 什么信息也没有 就给我停了

    1天前
    有用
    回复
登录 后发表内容