开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
支付产品
私域产品
小程序产品
权限集列表
搜索关键词
搜索直达
收藏
消息
小程序码
小程序服务
订单中心
小程序开发管理
接入指南
api 列表
隐私信息授权
小程序基础信息
小程序开发版本
小程序应用成员
小程序类目
小程序二维码
代创建小程序
小程序域名
插件管理
小程序备案
生物核身
交易组件
小程序商品
支付有礼
商家粉丝群
营销产品
资金产品
会员产品
信用产品
广告产品
文档更新记录 >
收藏
订阅更新
我的文档
设置
接入检测
即可查看检测结果)
若有未通过的接入检测项,接口将无法调通

my.onneedprivacyauthorization(function listener)

基础库 2.9.7 或更高版本;

支付宝客户端 支持

支小宝客户端 支持

安诊儿客户端 支持

主体: 企业支付宝小程序个人支付宝小程序

监听隐私接口需要用户授权事件。

开发者需要在监听函数中弹出自定义隐私弹窗,在用户点击同意/拒绝后,再通过调用 resolve 通知触发了 needprivacyauthorization 后处于 pending 状态的隐私接口或组件继续执行。

注意:my.onneedprivacyauthorization 是覆盖式注册监听,重复调用只有最后一次生效。

function listener

隐私接口需要用户授权事件的监听函数。

参数

function resolve

隐私授权结果回调接口。

needprivacyauthorization 事件触发后,触发该事件的隐私接口或组件会处于 pending 状态:

  • 如果调用 resolve({ event: 'agree', buttonid: 'agree-btn' }),则 pending 的隐私接口或组件会继续执行。其中 buttonid 为隐私同意授权按钮的 id。请在
  • 如果调用 resolve({ event: 'disagree' }),则会触发 pending 的隐私接口或组件 fail 回调。

resolve 参数对象的属性:

属性 类型 描述
event string

用户操作类型

枚举值 描述 兼容性
agree

用户同意隐私授权

-
disagree

用户拒绝隐私授权

-
buttonid string

同意授权按钮的 id(仅event=agree时必填)

object eventinfo

触发本次 needprivacyauthorization 事件的关联信息。包含以下属性:

属性 类型 描述
referrer string

触发本次 onneedprivacyauthorization 事件的接口或组件

axml
js
<view a:if="{{showprivacy}}">
  <view>隐私弹窗内容....view>
  <button id="agree-btn" open-type="agreeprivacyauthorization" onagreeprivacyauthorization="handleagreeprivacyauthorization">同意button>
view>

page({
    data: {
        showprivacy: false
    },
    onload() {
        my.onneedprivacyauthorization((resolve, eventinfo) => {
            console.log('触发本次事件的接口是:'  eventinfo.referrer)
            // 需要用户同意隐私授权时
            // 弹出开发者自定义的隐私授权弹窗
            this.setdata({
                showprivacy: true
            })
            this.resolveprivacyauthorization = resolve
        })
        my.getlocation({
            type: 1,
            success: (res) => {
                console.log(res);
            },
            fail: (res) => {
                my.alert({ title: '定位失败', content: json.stringify(res) });
            },
        })
    },
    handleagreeprivacyauthorization() {
        // 用户点击同意按钮后
        this.resolveprivacyauthorization({ buttonid: 'agree-btn', event: 'agree' })
        // 用户点击同意后,开发者调用 resolve({ buttonid: 'agree-btn', event: 'agree' })  告知平台用户已经同意,参数传同意按钮的id。为确保用户有同意的操作,基础库在 resolve 被调用后,会去检查对应的同意按钮有没有被点击过。检查通过后,相关隐私接口会继续调用
        // 用户点击拒绝后,开发者调用 resolve({ event:'disagree' }) 告知平台用户已经拒绝
    }
})

q:什么时候会触发 needprivacyauthorization 事件?

a:

场景一:调用隐私相关接口(比如 my.getlocation、my.getclipboard)和组件(比如 ),并且用户还未同意过隐私协议时。

场景二: 调用 my.requireprivacyauthorize 接口来模拟隐私接口调用,并且用户还未同意过隐私协议时。

注意:如果用户已经同意过隐私协议,则不会再触发 onneedprivacyauthorization 事件。

q:一定要注册 my.onneedprivacyauthorization 监听以及调用 resolve 吗?

a:

不是的,如果能保证在调用隐私接口之前,用户已经点击过

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图