前言

  • 最近突然发现uni-app上传组件,在微信开发者工具上传图片时候,打开不了文件资源,报错

  • 在体验版和上线版本一样的情况,上传图片的时候打开不了照相机和相册,报的错也是同样

  • 其实这是因为小程序后台没有完善用户隐私保护指引,和对应的api和组件的申请权限

  • 在查询这个问题过程中,发现很多说组件手动上传,设置usePrivacyCheck,改基础库的等等

  • 后面排查问题越来越晕-下面是自己解决这个问题过程分享给大家

情景在现

  • 在微信开发者工具上传组件报错,打开不了文件资源。

  • 如果你把小程序基础库改成2.32.2-一切正常,说明就是你的用户隐私保护指引没有完善

  • 改基础库自己可以这种方法不可取(下面会讲)

过程须知

1.需不需要在uni-app的源码视图添加小程序属性usePrivacyCheck: true-不需要
  • 首先小程序文档搜索-小程序隐私协议开发指南

  • 文档写的很清楚2023年9月15日之后不管你有没有设置这个属性,都会把隐私询问弹框开启

2.uni-app uni-file-picker组件是否需要上传空间-开启手动上传-不需要
  • 来到uni-app文档的内置uni-file-picker组件

  • 文档说的很清楚-没有上传空间时候默认就是手动上传-意思是跟着没关系(具体使用主页文章有)

  • 意思就是如果原来你的组件是正常使用的,那就是跟这没关系

3.更改微信开发者工具基础库为2.33.2之后一切正常-不可取
  • 我们可以把小程序基础库理解成微信版本,会跟据安装的不同微信版本而改变

  • 因为你在本机开发者工具修改基础库确实可以让你自己正常上传图片

  • 并且基础库推送之后,你就会发现只有自己的手机环境登录体验版,正式版可以正常上传-反而会误导我们

  • 因为我们本机推送基础库,只能改变自己微信环境的基础库,我们是改变不了别人用的的基础库

  • 这也是为什么小程序后台只能设置最低基础库提醒-因为我们不能阻止别人更新

  • 所以完善用户隐私指引,获取授权-才是真正解决办法

4.为什么这么严谨安全-自己理解
  • 用户隐私指引意思就是把相关重要组件和api管控起来,开发者需要使用就申请对应的权限-也会通过弹窗告知用户

  • 可能是为了数据安全和用户须知性-我们干什么必须让用户知道

  • 包括之前获取授权api废弃和等等组件和api不能使用也是这个原因吧-可以理解

微信小程序后台通知

解决步骤

1.登录小程序管理后台-点击右边最下面设置-在基本设置往下划找到-服务内容声明

  • 一次没修改过是未更新-修改过一次是已更新

2.点击右侧更新-1.开发者处理的信息-增加信息类型-要看清楚不要直接就往下划直接确认生成协议

  • 根据自己代码中使用的api勾选正确的信息类型权限

  • 怎么知道api对应哪些权限-点击图中-或者文档直接搜索-小程序用户隐私保护指引内容介绍

  • 我的是上传问题-收集你选中的照片或视频信息-访问你的摄像头(用途真实填写就行了)

  • 审核一般快的几个小时就会通过

3.选中对应权限确定会让你填写每个权限用途-如实填写就可以了-给用户看的

4.填完划到最下面-确认并生成协议-等待审核

5.审核通过之后-本地微信开发者工具任何基础库-上传图片恢复正常

  • 并且会自动检测,在你需要获取用户隐私指引的时候会自己弹出授权框确定(只会出现一次)

  • 我们本地重新编译之后,也会出现一次授权框。协议内容就是我们在小程序后台勾选申请审核的

6.这个时候我们只保证了本地正常-所以在体验版本提交审核的时候把采集用户隐私勾选上

   注意点击更新查看一下消息类型,是否一致,不一致重复上面2,3,4步骤

   小程序后台设置的是管本地的,这里点击更新是管线上的。第一次要设置2次才对(切记)

7.最终效果

  • 小程序在上传图片时候拉取一个授权框(用户隐私指引-只会授权一次)确定之后一切正常

  • 完结


总结:

经过这一趟流程下来相信你也对 uni-app 微信小程序-完善用户隐私保护指引-(chooseAndUploadFile:fail api scope is not declared in the privacy aereement) 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

有什么不足的地方请大家指出谢谢 -- 風过无痕

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐