开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
基础
应用级事件
界面
跳转
多媒体
缓存
文件
位置
网络
设备
worker
数据安全
分享
收藏
自定义通用菜单
更新管理
web-view组件控制
升级支付宝最新版本
隐私信息授权
小程序广告
开放能力 api
开发 > api > 基础 api > 隐私信息授权 > my.onneedprivacyauthorization
收藏
订阅更新
我的文档
设置

my.onneedprivacyauthorization(function listener)

基础库  或更高版本; 若版本较低,建议采取 兼容处理

支小宝客户端 支持

安诊儿客户端 支持

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

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

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

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

function listener

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

参数

function resolve

隐私授权结果回调接口。

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

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

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 © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
<