收藏
回答

隐私协议处理相关问题?

我这个页面是用户点击打卡按钮,调用wx.getLocation api, 然后弹出隐私协议弹窗。当用户点击拒绝的时候,现在有两种情况

1、如果拒绝之后调用了this.resolvePrivacyAuthorization({ event: 'disagree'  }); 那么就会触发后续隐私api的调用,并且执行隐私api的fail回调;这种情况,wx.onNeedPrivacyAuthorization会持续监听,用户重复操作打卡按钮,也会继续弹除隐私协议弹窗;

2、如果拒绝之后不调用 this.resolvePrivacyAuthorization({  event: 'disagree'  }); 那么就不会触发后续隐私api的调用,也就不会执行隐私api的fail回调;但是这样的话wx.onNeedPrivacyAuthorization就会中断监听,用户重复操作打卡按钮,不会继续弹除隐私协议弹窗;

可是我想要的效果是拒绝之后,wx.onNeedPrivacyAuthorization既能够继续监听,又不要执行相关api 的fail回调。该怎么实现?

export default {
  data() {
    return {
      showAgreement: false,
      resolvePrivacyAuthorization: null
    };
  },
  computed: {},
  methods: {
    agree() {
      this.showAgreement = false;
      this.resolvePrivacyAuthorization({
        buttonId: 'agree-btn',
        event: 'agree'
      });
    },
    refuse() {
      this.showAgreement = false;
      this.resolvePrivacyAuthorization({
       event: 'disagree'
      });  //如果这里不调用的话,用户再次点击打卡,就不执行wx.onNeedPrivacyAuthorization里的代码了,该怎么办?
    }
  },
  onShow() {
    if (wx.onNeedPrivacyAuthorization) {
      wx.onNeedPrivacyAuthorization((resolve) => {
        console.log(11, resolve);
        this.showAgreement = true;
        this.resolvePrivacyAuthorization = resolve;
        console.log(this.showAgreement);
      });
    }
  },


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

2 个回答

  • Jerry
    Jerry
    2023-08-24

    为啥要这样的效果呢?

    2023-08-24
    有用
    回复 10
    • yflee
      yflee
      2023-08-24
      因为以前的业务代码里  隐私api的fail里有一些提示信息。并不适用此场景  不想让他提示。但是又需要用户重复操作打卡按钮时 能继续校验隐私协议权限
      2023-08-24
      回复
    • sine
      sine
      2023-08-24回复yflee
      去掉提示不就行了?
      2023-08-24
      回复
    • yflee
      yflee
      2023-08-24回复sine
      当然是业务要求fail需要提示了。所以才来问的,但是提示信息又不适用这种隐私拒绝的情况。而且页面很多
      2023-08-24
      回复
    • Jerry
      Jerry
      2023-08-24回复yflee
      fail的时候区分一下错误码,根据错误码是未授权的情况就不提示呗
      2023-08-24
      回复
    • yflee
      yflee
      2023-08-24回复sine
      现在有一种场景,我是页面的子组件中用到的定位api, 在父页面中写的onNeedPrivacyAuthorization监听,但是第一次触发的时候,会先弹出原本的定位api的弹窗。然后onNeedPrivacyAuthorization才返回监听回调
      先弹了图一,点了允许之后,onNeedPrivacyAuthorization才监听到,弹出图2
      2023-08-24
      回复
    查看更多(5)
  • 张笑宇
    张笑宇
    2023-08-24

    的确, console 里第一次时会打印错误信息, 后面拒绝时就不会有这个错误提示:

    [渲染层错误] getPhoneNumber:fail privacy permission is not authorized,errno:104(env: macOS,mp,1.06.2307260; lib: 3.0.1)

    2023-08-24
    有用
    回复
登录 后发表内容