- 小程序隐私协议开发,使用耦合方式登录授权之后,其他页面有收集相册、收集选中照片等信息,怎么使用?
小程序涉及处理用户个人信息,使用耦合方式 <button id="agree-btn1" open-type="getPhoneNumber|agreePrivacyAuthorization" bindgetphonenumber="handleGetPhoneNumber" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意隐私协议并授权手机号</button> 在登录授权页面,那在其他页面,调用wx.chooseMedia、wx.chooseVideo接口时,这些需要重新同意隐私协议吗?这也可以用耦合的方式? 只要使用 open-type <button open-type="agreePrivacyAuthorization">所有私有信息都能用这种方式静默同意使用?还是需要使用弹窗授权的方式才生效?
2023-09-13 - 关于小程序隐私协议设置的疑问?
[图片] 这个是我司小程序的一些信息收集项,涉及到 wx.getLocation、wx.chooseMedia 、getPhoneNumber、 wx.openLocation 、方法? 如果不通过微信小程序提供的隐私开发接口做对应的处理,是否在2023年9月15号之后无法调用这些接口? 如果按照微信的隐私开发指引去做隐私协议处理,那么我们小程序目前的隐私政策处理模式(如下图)是否就会冲突? 因为我们有些功能是在用户未注册的情况下使用的,使用的过程中会需要获取用户的位置信息(调用 wx.getLocation),还是说在获取用户的位置信息的时候也需要做隐私协议须知提示? [图片]
2023-09-05 - 关于小程序隐私提示的双重弹框问题?
现在遇到一个尴尬的问题,我要使用麦克风,就是我添加了隐私提示框,在首页点击允许后,在点击页面中的按钮要开始录音的时候,又在底部系统自动弹出框,询问是否允许使用麦克风。 这弹出两次,就很不友好了。 目前我是本地预览,还没有提交审核。请问已经提交该功能的朋友,是否在线上也有类似问题? 我补充说明一下这个问题,看起来是微信小程序自身的bug。 摄像头我用的是wx.chooseMedia方法,这个在隐私清单里面。勾选上就可以用,所以不再二次弹框。 录一那我用的是this.vedioControl = wx.getRecorderManager(); vedioControl.start()。不在在隐私清单里面,所以他会不受隐私清单的影响,二次弹窗,让用户授权。
2023-09-11 - 基础设置的隐私协议和提交审核地方的隐私协议不一致?
[图片][图片] 一个是基础设置里的隐私协议,一个是提交版本审核时里面的隐私协议,两个为什么会不一致,导致wx.chooseImage、wx.chooseMedia、wx.chooseVideo出现部分用户使用时失败;现在的情况就是部分用户可用,部分用户不可用
2023-11-20 - chooseMedia:fail:system permission denied?
Android系统,微信版本8.0.16,基础库版本2.21.0 使用wx.chooseMedia无法唤起手机的文件选择入口,并且接口fail回调 errMsg:"chooseMedia:fail:system permission denied" 什么情况会返回这个错误?
2021-11-29 - 如何修改用户隐私保护协议?
前天突然小程序调用相机的功能不能使用了,报错chooseMedia:fail api scope is not declared in the privacy agreement 然后我根据网上的方式,修改更新了用户隐私保护协议,但是审核通过已经两天了还是不能调用wx.chooseMedia,不知道我是缺少了哪步呢? [图片] 更新后的隐私保护协议 [图片] 审核通过后 [图片]
2023-11-03 - 用户隐私保护中关于开发者收集你选中的照片或视频信息项?
请问一下这个是用了wx.chooseImage或是wx.chooseMedia 2个组件API就要申请。还是申请后能获取更多的exif(如pgs)信息申请。
2023-08-21 - chooseMedia:fail 授权失败?
报错信息: chooseMedia:fail privacy permission is not authorized 源代码: wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['album'], success(res) { console.log('choose res:', res); const tempFilePaths = res.tempFiles[0].tempFilePath; that.setData({ selectedImage: tempFilePaths, // 保存选中的图片路径 }); console.log('selected image:', that.data.selectedImage); }, fail(res) { console.log('fail', res); } }); 输出截图: [图片]
2023-08-15 - 小程序读取相册没有给授权弹窗被通报不合规?
开发文档提供了“收集你选中的照片或视频信息接口 wx.chooseImage、wx.chooseMedia、wx.chooseVideo 更选头像选择相册选取 直接访问相册 因为没弹窗被下通报告知不合规 但是找了好多小程序都没有提供相册弹窗,这怎么加? 或者有没有那个小程序有相册弹窗的麻烦推荐一下,我做个借鉴
2024-08-01 - fail api scope is not declared in the privacy agreement
fail api scope is not declared in the privacy agreement,api 范围未在隐私协议中声明 建议大家更具公告,更新对应的隐私协议 https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&announce_id=11691660367cfUvX&version=&lang=zh_CN&token= 登录mp后台,设置, [图片] [图片] [图片] 完善并提交信息, 注意:更新好隐私协议,要通过审核的,接口才能正常访问 正确处理隐私弹窗逻辑 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/PrivacyAuthorize.html demo1: 演示使用 [代码]wx.getPrivacySetting[代码] 和 [代码]<button open-type="agreePrivacyAuthorization">[代码] 在首页处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/gi71sGm67hK0 demo2: 演示使用 [代码]wx.onNeedPrivacyAuthorization[代码] 和 [代码]<button open-type="agreePrivacyAuthorization">[代码] 在多个页面处理隐私弹窗逻辑,同时演示了如何处理多个隐私接口同时调用。 https://developers.weixin.qq.com/s/hndZUOmA7gKn demo3: 演示 [代码]wx.onNeedPrivacyAuthorization[代码]、[代码]wx.requirePrivacyAuthorize[代码]、[代码]<button open-type="agreePrivacyAuthorization">[代码] 和 [代码]<input type="nickname">[代码] 组件如何结合使用 https://developers.weixin.qq.com/s/jX7xWGmA7UKa demo4: 演示使用 [代码]wx.onNeedPrivacyAuthorization[代码] 和 [代码]<button open-type="agreePrivacyAuthorization">[代码] 在多个 tabBar 页面处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/g6BWZGmt7XK9 常见错误 [代码]{ "errMsg": "A:fail api scope is not declared in the privacy agreement", "errno": 112 }[代码] 使用到了 A 隐私接口,但是开发者未在[mp后台-设置-服务内容声明-用户隐私保护指引]中声明收集 A 接口对应的隐私类型。 [图片] 在审核提交时候,选择采集用户隐私 [图片] 在js上需要配合配置用户隐私授权弹窗 微信提供了wx.onNeedPrivacyAuthorization(function callback) 接口,意为用户触发了一个微信侧未记录过同意的隐私接口调用,开发者可通过响应该事件选择提示用户的时机。此外,微信还提供了 wx.requirePrivacyAuthorize(Object object) 接口,可用于模拟触发 onNeedPrivacyAuthorization 事件。 2023.08.22更新: 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明: 在 2023年9月15日之前,在 app.json 中配置 [代码]__usePrivacyCheck__: true[代码] 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。在 2023年9月15日之后,不论 app.json 中是否有配置 [代码]__usePrivacyCheck__[代码],隐私相关功能都会启用。接口用法可参考下方完整示例demo 2023.09.14更新: 隐私相关功能启用时间延期至 2023年10月17日。在 2023年10月17日之前,在 app.json 中配置 [代码]__usePrivacyCheck__: true[代码] 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。在 2023年10月17日之后,不论 app.json 中是否有配置 [代码]__usePrivacyCheck__[代码],隐私相关功能都会启用。新增官方隐私授权弹窗功能,相关功能参考下方官方隐私弹窗功能说明。此功能目前仍在开发阶段,开发者目前可以先阅读本指南文档和接口文档进行理解,平台将会尽快正式上线相关能力,上线后会在本指南文档中进行说明。 小程序开发者可自行设计提示方式与触发时机,详细文档可查看隐私协议开发指南 。 仅有在指引中声明所处理的用户个人信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将直接禁用。 [图片] (参考样例)
2023-09-15 - 关于wx.chooseMedia,隐私条款已经授权,本地和真机调试没问题,发布到体验版本有问题?
[图片] 代码亲测,已经授权走的 下边这个方法,然后调用直接报错{errmsg:'chooseMeida':'ok','tem...':},此代码在真机模拟。本地运行完全OK 但就是上传到体验版本不行,求大神们讲解!! {"errMsg": "chooseMedia:fail api scope is not declared in the privacy agreement", "errno": 112}
2024-02-29 - 用户保存图片到相册授权问题。
问题描述:大家可能会遇到这样的问题,有一个保存图片到相册的功能,我们利用wx.saveImageToPhotosAlbum() api,正常情况下很简单用户点击按钮,系统询问是否授权,用户点击授权图片保存成功。 但是事情往往不是我们想到那样简单,用户的操作可谓是什么操作都有。当系统询问是否授权时,非常敏感的用户一看到授权2话不说,直接拒绝。心想:“握草,想获取我的隐私?”。不一会自己又感觉不对劲,我要保存图片啊,我怎么点了取消。然后又去点保存,发现什么反应都没,心想:“握草怎么没反应,是不是手机坏了,什么鬼”,强迫症患者这个情况怕不是要疯了。 为什么会出现这种情况,根据微信小程序api发现 wx.saveImageToPhotosAlbum() api 只会在用户第一次调用的时候发起授权弹窗,如果用户拒绝授权,wx.saveImageToPhotosAlbum()调用失败,这个时候wx.saveImageToPhotosAlbum()走了失败回调,我们在控制台打印 console.log(“用户授权api调用失败,几率0.01%”) console.log(“用户拒绝授权,几率99.99%”) 用户拒绝授权怎么办,么慌。根据微信小程序文档我们会知道,这种情况下需要用户主动到授权管理页面打开相应的授权开关,高级微信用户都是到入口在那,一般用户授权:“授权管理页面是什么鬼?“,我们不能把希望寄托在他们身上了,他们不是会再一次去点击保存按钮吗? 来一个偷梁换柱,wx.saveImageToPhotosAlbum()调用失败检测是否未授权 this.get_setting() 发现用户未授权,将页面按钮换成 <button open-type=‘openSetting’ bindopensetting=‘bind_load’ class=‘fenxiang_bot_box nobutton’></button> 打开授权管理页面, 用户发现自己“看到了不该看的,握草,用户信息,保存相册,敢获取我的信息,都关掉”,哈哈,用户已经知道是怎么回事了,“不行我得把保存相册打开,这个图片太好了我要保存”; get_setting(t) { wx.getSetting({ success: (res) => { if (res.authSetting[‘scope.writePhotosAlbum’] == undefined) { this.setData({ img_status: true }); } else { this.setData({ img_status: res.authSetting[‘scope.writePhotosAlbum’] }); } if (t) { t() } } }) }, wx.saveImageToPhotosAlbum({ filePath: this.data.img, success(res) { wx.showToast({ title: ‘保存成功’ }) }, fail: (res) => { [代码] this.get_setting(() => { if (this.data.img_status) { wx.showToast({ title: '保存失败', icon: 'none' }) } else { wx.showToast({ title: '权限不足', icon: 'none' }) } }); } }) [代码] 用户同意授权,打开开关返回bindopensetting=‘bind_load’ bind_load 事件触发保存操作, 保存成功^ _^
2019-07-03 - 微信小程序有图片的网络地址,怎么保存保存图片到本地?
请问有这种功能支持吗
2023-10-17 - 小程序的数组赋值问题
我通过封装一个搜索附近酒店函数(getnearHotel())来达到重复利用的目的,但是函数的返回值赋值时,出现undefined错误。 具体如下: 1.自己封装函数,中间的req.request是又封装过一次的,req.request(参数1:访问路径,参数2:传入的值,参数三:请求成功的响应函数,...) [图片] 控制台打印的res的值 [图片] 2.新建变量接收函数的返回值,同时打印测试其值 [图片] 接收返回值 [图片] ★通过结果发现,出现undefined错误,我转念一想,会不会是要循环赋值,但我一想到在this.setData中的hotellist:result是可以循环赋值的,为此我又进行了如下的测试 1.我通过判断函数的返回值是否存在,来设置hotellist的值 [图片] 其控制台的输出结果如下: [图片] 问题1:为什么我不能通过函数的返回值来设定page中的data值? 问题2:是否只有通过this.setData({ lists:res })的方式才能动态的设置值,那意思是函数的返回值是一个数组时,是不能直接通过var result = getnearHotel() //某函数的返回值 接收? 本人刚接触小程序没多久,很多白痴地方望大家帮忙看看,解答解答~
2017-12-19