隐私协议相关的接口和组件
// 1.获取隐私协议授权设置,可判断是否已经授权 wx.getPrivacySetting({ success: res => { // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' } console.log(res) // 需要进行隐私授权 if (res.needAuthorization) { } else { // 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用隐私接口 } }, fail: () => {}, complete: () => {} }) // 2.打开展示隐私协议内容的小程序默认页面 wx.openPrivacyContract({ success: () => {}, // 打开成功 fail: () => {}, // 打开失败 complete: () => {} }) // 3.请求授权隐私协议,打开小程序默认的授权弹窗 wx.requirePrivacyAuthorize({ // 用户同意授权 success: () => {}, // 用户拒绝授权 fail: () => {}, complete: () => {} }) // 储存授权中的等待状态 let resolvePrivacyAuthorization = null // 4.监听用户隐私授权,当用户触发需要授权的动作比如调用 `wx.requirePrivacyAuthorize` 或者 `wx.getUserProfile` 以及一些其他需要隐私授权的接口,都会执行此回调,并通过 `resolve` 决定授权失败还是成功 wx.onNeedPrivacyAuthorization((resolve, eventInfo) => { console.log('触发本次事件的接口是:' + eventInfo.referrer) // 需要用户同意隐私授权时 // 弹出开发者自定义的隐私授权弹窗 resolvePrivacyAuthorization = resolve }) // 5.隐私弹窗同意按钮,用于触发隐私授权的同意逻辑,将隐私授权改为已授权状态
实现这个功能之前,你首先需要知道你是想使用自定义的隐私授权弹窗还是小程序的默认隐私授权弹窗
1. 自定义隐私授权弹窗
方案一 强制用户同意隐私授权
用户进入小程序显示弹窗,拒绝则退出用小程序,同意按钮换成 `
方案二 不强制用户同意隐私授权
进入小程序通过 `wx.getPrivacySetting` 判断是否已经授权,如果没有授权则注册 `wx.onNeedPrivacyAuthorization` 事件
,在回调中执行弹窗显示的逻辑,并记录回调的第一个参数,这个参数是在用户点击弹窗的同意按钮后执行此函数从而实现
成功授权,注意这里注册 `wx.onNeedPrivacyAuthorization` 事件的原因只有一个,就是你的小程序内部使用了一些需要先
隐私授权的接口或组件时,在你还没授权时,他会自动执行 `wx.onNeedPrivacyAuthorization` 事件中定义的逻辑,此时授
权状态为等待状态,wx.onNeedPrivacyAuthorization只会注册一次