首页 小程序开发 正文内容

uni-app 开发小程序,选择文件上传报错:chooseAndUploadFile:fail api scope is not declared in the privacy agreement

2023年09月07日 , , 441

微信小程序突然无法选择文件,是因为基础库更新的问题,分享我的经验帮大家看看具体怎么处理这个问题。

报错信息

之前在小程序中用 <uni-file-pick> 组件来选择文件上传都没有问题,现在什么代码都没改,无论是微信开发者工具还是真机运行,都没法选择文件,而且返回报错了,报错信息如下:

选择失败 { errMsg:"chooseAndUploadFile:fail api scope is not declared in the privacy agreement"}

报错原因分析

从报错信息来看,是因为隐私协议的问题,但小程序不像 APP 开发,哪有什么隐私协议呢?后来才注意到微信公众平台安全助手给发的一条消息,内容如下:

微信公众平台安全助手提示消息
微信公众平台安全助手提示消息

原来是因为微信开发工具默认的基础库升级到了 2.33.0,在这个版本下更新了针对用户的隐私协议,需要到登录微信小程序后台去完善。出现上面的报错,其实不是 uni-app 组件的问题,而是因为 2023年6月15日 后没有完善,小程序隐私接口调用权限已经被收回了。

解决方法

方法1:继续使用低版本基础库

在微信开发者工具中,点击右上角,把微信基础库版本改成 2.33.0 以下,然后在重新运行项目即可。2.33.0 版本以下目前不需要完善《用户隐私保护指引》。不过这个方法只能暂时解决一下,不推荐。

方法2:完善协议

登录小程序平台,然后在「设置」-「基本设置」-「服务内容声明」中,找到《用户隐私保护指引》,点击右边的「更新」,根据提示完善就可以了。

小程序平台操作截图
小程序平台操作截图

操作完成后再次运行小程序,就可以正常选择文件了。