Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

小程序隐私协议更新导致的部分api无法使用 #14377

Closed
aaa123123999 opened this issue Aug 16, 2023 · 59 comments
Closed

小程序隐私协议更新导致的部分api无法使用 #14377

aaa123123999 opened this issue Aug 16, 2023 · 59 comments
Assignees
Labels
enhancement New feature or request P-1 High, patch T-weapp Target - 编译到微信小程序
Milestone

Comments

@aaa123123999
Copy link

aaa123123999 commented Aug 16, 2023

这个特性解决了什么问题?

什么时候会支持这部分的功能,9月15日后将无法使用这部分api比如现在的粘贴功能就无法使用

这个 API 长什么样?

什么时候会支持这部分的功能

@taro-bot2 taro-bot2 bot added enhancement New feature or request labels Aug 16, 2023
@ZakaryCode ZakaryCode added the T-weapp Target - 编译到微信小程序 label Aug 18, 2023
@zedwang
Copy link

zedwang commented Aug 22, 2023

Same question.

@1045598742
Copy link

微信管理台更新协议就好了,和taro没关系 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/

@jz-9527
Copy link

jz-9527 commented Aug 24, 2023

微信需要把Button的openType设置为"agreePrivacyAuthorization",同时bindagreeprivacyauthorization 监听用户同意隐私协议事件,目前taro的Button组件是没有支持的,这个怎么解决?微信目前已经更新了文档了https://developers.weixin.qq.com/miniprogram/dev/component/button.html

@xuanzebin
Copy link
Member

微信需要把Button的openType设置为"agreePrivacyAuthorization",同时bindagreeprivacyauthorization 监听用户同意隐私协议事件,目前taro的Button组件是没有支持的,这个怎么解决?微信目前已经更新了文档了https://developers.weixin.qq.com/miniprogram/dev/component/button.html

通过 taro-inject 插件可以自定义添加 taro 组件属性和事件的绑定:https://github.com/NervJS/taro-plugin-inject

@TheKonka
Copy link
Member

TheKonka commented Aug 28, 2023

@jz-9527

单就你说的Button组件的修改,taro 是已经支持了的 #14183

@cuiliming666
Copy link

请问下现在有taro适配小程序9月15号调整隐私政策的方案了吗?

@jz-9527
Copy link

jz-9527 commented Aug 28, 2023

@jz-9527

单就你说的Button组件的修改,taro 是已经支持了的 #14183

这个我看了下,是针对微信手机号授权收费问题的更新,并不是这次隐私协议的更新改动,如果大佬们更新上去了,还请留一下稳定可用的版本号,感激不尽

@bigmeow
Copy link
Member

bigmeow commented Aug 28, 2023

  1. 升级最新版本
  2. 老版本支持指南:
# 注意版本号和自己的 taro 主版本号保持一致
npm i @tarojs/plugin-inject -D

config/index.js 中增加 plugins 配置:

{
  ... 其他配置
   plugins:[
      [
        "@tarojs/plugin-inject",
        {
          
          components: {
            Button: {
              bindagreeprivacyauthorization: "" // 这个必须要写,不然不触发回调
            }
          }
        }
      ]
    ]
}

类型定义直接忽略(类似定义这里我自己写的openType怎么也覆盖不了,所以暂时先忽略用着):

<Button
  // @ts-ignore
  openType="agreePrivacyAuthorization"
  // @ts-ignore
  onAgreePrivacyAuthorization={handleOnAgreePrivacyAuthorization}
  
>我同意</Button>

types/global.d.ts:

declare module "@tarojs/taro" {
  namespace getPrivacySetting {
    interface Option {
      /** 接口调用结束的回调函数(调用成功、失败都会执行) */
      complete?: (res: TaroGeneral.CallbackResult) => void;
      /** 接口调用失败的回调函数 */
      fail?: (res: TaroGeneral.CallbackResult) => void;
      /** 接口调用成功的回调函数 */
      success?: (result: SuccessCallbackResult) => void;
    }
    interface SuccessCallbackResult extends TaroGeneral.CallbackResult {
      /** 是否需要用户授权隐私协议(如果开发者没有在[mp后台-设置-服务内容声明-用户隐私保护指引]中声明隐私收集类型则会返回false;如果开发者声明了隐私收集,且用户之前同意过隐私协议则会返回false;如果开发者声明了隐私收集,且用户还没同意过则返回true;如果用户之前同意过、但后来小程序又新增了隐私收集类型也会返回true) */
      needAuthorization: boolean;
      /** 隐私授权协议的名称 */
      privacyContractName: string;
    }
  }
  interface TaroStatic {
    getPrivacySetting: (option?: getPrivacySetting.Option) => void;
  }
}

注意不要用 promise 的写法;
回调不触发的:

  • 仔细核对上面的流程
  • 检查自己的小程序基础库版本是否是3.0.0及其以上
  • app.config.ts 是否增加了 __usePrivacyCheck__: true 配置
  • 如果是真机,检查微信版本和小程序基础库,都有要求

@bs32g1038
Copy link

不升级taro版本,要怎么兼容处理,头大

@TheKonka
Copy link
Member

wx.requirePrivacyAuthorize(Object object)

wx.openPrivacyContract(Object object)

wx.onNeedPrivacyAuthorization(function listener)

wx.getPrivacySetting(Object object)

这些 wx. api 都可以在代码里面直接调用

@cuiliming666
Copy link

想使用‘agreePrivacyAuthorization’类型的button,不想升级可以使用混合写法,用小程序的写法写组件或页面来实现(taro 2.0.1实验成功)

@lupingW
Copy link

lupingW commented Aug 30, 2023

请问下现在有taro适配小程序9月15号调整隐私政策的方案了吗?

https://juejin.cn/post/7272749016755765300

@Zeppo241
Copy link

在app.config.ts里配置__usePrivacyCheck__: true会报错,调用requirePrivacyAuthorize,getPrivacySetting,openPrivacyContract,onNeedPrivacyAuthorization这几个api返回也是undefined

@szqingt
Copy link

szqingt commented Aug 30, 2023

在app.config.ts里配置__usePrivacyCheck__: true会报错,调用requirePrivacyAuthorize,getPrivacySetting,openPrivacyContract,onNeedPrivacyAuthorization这几个api返回也是undefined

基础库是用的最新的吗?

@Zeppo241
Copy link

在app.config.ts里配置__usePrivacyCheck__: true会报错,调用requirePrivacyAuthorize,getPrivacySetting,openPrivacyContract,onNeedPrivacyAuthorization这几个api返回也是undefined

基础库是用的最新的吗?

是的,3.0.1

@hongzhiyuan-man
Copy link

想使用‘agreePrivacyAuthorization’类型的button,不想升级可以使用混合写法,用小程序的写法写组件或页面来实现(taro 2.0.1实验成功)

大佬,这样要怎么做啊

@Xhyen
Copy link

Xhyen commented Aug 31, 2023

在app.config.ts里配置__usePrivacyCheck__: true会报错,调用requirePrivacyAuthorize,getPrivacySetting,openPrivacyContract,onNeedPrivacyAuthorization这几个api返回也是undefined

我这里可以, 基础库是2.32.3,但是出现了告警
无效的 app.json ["__usePrivacyCheck__"]

然后导致wx.getPrivacySetting这个方法无法执行,没有回调参数

@sjy9280
Copy link

sjy9280 commented Aug 31, 2023

taro 2.x版本的怎么搞,Taro编译有问题,不把bindagreeprivacyauthorization里的方法识别成事件

@cuiliming666
Copy link

目前采用混写的方式,判断是否需要授权及‘agreePrivacyAuthorization’同意按钮,使用的是原生来写的弹窗组件,再引入到需要使用的页面,2.0.1及3.x用这个方案都改造完成了

@yaodongyi
Copy link

onAgreePrivacyAuthorization 这个回调,不生效,3.6.6,3.6.15都无效 react版本。无法手动触发resolvePrivacyAuthorization:
image

同个版本库下,wx demo 是有效的:
image

@yaodongyi
Copy link

image

@TheKonka
Copy link
Member

TheKonka commented Sep 4, 2023

@yaodongyi 用最新的3.6.15,onAgreePrivacyAuthorization 可以正常监听到,我试了没问题

@yaodongyi
Copy link

@TheKonka 3.6.15,指的是taro框架升级到3.6.15?

@TheKonka
Copy link
Member

TheKonka commented Sep 5, 2023

@TheKonka 3.6.15,指的是taro框架升级到3.6.15?

最好taro 相关的都升级到 3.6.15 ,如果不都升级到话, @tarojs/plugin-platform-weapp 这个包必须升级到最新版

@yaodongyi
Copy link

yaodongyi commented Sep 5, 2023

@TheKonka 那看起来没办法,不管是@tarojs/plugin-platform-weapp升级,还是框架升级,都会报错。

  1. taro框架整体升级:babel等各种依赖报错,项目崩溃。
  2. @tarojs/plugin-platform-weapp升级,应该是涉及写法/属性报错,项目崩溃。

@yaodongyi
Copy link

老框架无法回调onAgreePrivacyAuthorization,解决方式:暂用onClick代替

@lupingW
Copy link

lupingW commented Sep 5, 2023

老框架无法回调onAgreePrivacyAuthorization,解决方式:暂用onClick代替

@tarojs/plugin-inject 往上翻 用这个插件就行

@yaodongyi
Copy link

@lupingW 已经装了,这里发不了视频,我视频发社区微信群了,这个~怎么说呢,想要回调应该是无解,只能重构或者官方调整一下插件支持回调。
@tarojs/plugin-inject第一时间安装了,能够使用open-type,就是无法触发onAgreePrivacyAuthorization回调。

@abramyangfab
Copy link

Taro.<wxapi>都触发不了onAgreePrivacyAuthorization,升级到了3.6.15了。
例如 Taro.saveImageToPhotosAlbum不能触发,但是 wx.saveImageToPhotosAlbum能够触发

@lovepotato
Copy link

有大佬告知一下Taro2.x怎么适配吗?

@moseszhou
Copy link
Contributor

有大佬告知一下Taro2.x怎么适配吗?

Taro2应该没有这个问题

@Zavierrr
Copy link

Zavierrr commented Sep 7, 2023

目前采用混写的方式,判断是否需要授权及‘agreePrivacyAuthorization’同意按钮,使用的是原生来写的弹窗组件,再引入到需要使用的页面,2.0.1及3.x用这个方案都改造完成了

但是回调怎么办呢,像这样:
image
报错:不存在属性“bindgetphonenumber”

@lupingW
Copy link

lupingW commented Sep 8, 2023

Taro3 react版本实现 公司已经用上了
https://juejin.cn/post/7272749016755765300

@Chen-jj Chen-jj added the P-1 High, patch label Sep 8, 2023
@Chen-jj Chen-jj added this to the 3.6.16 milestone Sep 8, 2023
@Chen-jj
Copy link
Contributor

Chen-jj commented Sep 8, 2023

Taro v3.6.16 修复

@TheKonka
Copy link
Member

@lilugirl 就是个变量,可以用 useRef 保存

@yaodongyi
Copy link

我也是用的 React, onAgreePrivacyAuthorization 这个回调不会触发!

<Button
        openType='agreePrivacyAuthorization'
        onAgreePrivacyAuthorization={() => {
          console.log("click');
        }}
        className='privacy_modal_button'
      >
        同意
      </Button>

确认 taro 相关依赖和 微信基础库都是最新的

Taro相关的都是最新的了

请问你找到解决方案了吗

无解,老版本直接用click替代吧,目前升级新版本,和重构项目没区别了,反正我升不动😭

@lovepotato
Copy link

我也是用的 React, onAgreePrivacyAuthorization 这个回调不会触发!

<Button
        openType='agreePrivacyAuthorization'
        onAgreePrivacyAuthorization={() => {
          console.log("click');
        }}
        className='privacy_modal_button'
      >
        同意
      </Button>

确认 taro 相关依赖和 微信基础库都是最新的

Taro相关的都是最新的了

请问你找到解决方案了吗

无解,老版本直接用click替代吧,目前升级新版本,和重构项目没区别了,反正我升不动😭

@yaodongyi @catmiao8
<Button className={classNameString} onClick={this.handleClick.bind(this)} style={style} open-type={openType} id="agree-btn" // @ts-ignore onAgreeprivacyauthorization={handleAgreePrivacyAuthorization} > {this.props.children} </Button>
props属性传'onAgreeprivacyauthorization',亲测有效

@predaking
Copy link

微信管理台更新协议就好了,和taro没关系 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/

不懂别乱说

@diamont1001
Copy link

最近公告,不用开发者改了,微信官方自己弹窗

@biorz
Copy link
Member

biorz commented Sep 15, 2023

最近公告,不用开发者改了,微信官方自己弹窗

有链接吗

@diamont1001
Copy link

最近公告,不用开发者改了,微信官方自己弹窗

有链接吗

https://mp.weixin.qq.com/s/5Ud3AE2tXBDhOaWiQRfK_Q
https://developers.weixin.qq.com/community/develop/doc/00060ce195c480815550613ef66000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P-1 High, patch T-weapp Target - 编译到微信小程序
Projects
Archived in project
Development

No branches or pull requests