<view wx:if="{{showPrivacy}}" class="privacy">
<view class="popup">
<view>隱私彈窗內(nèi)容....</view>
<view bindtap="openPrivacyAgreement">點(diǎn)擊查看隱私協(xié)議</view>
<button id="disagreeBtn" bindtap="disagreePrivacy">不同意</button>
<button id="agreeBtn" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="agreePrivacy">同意</button>
</view>
</view>
1、全局控制
頁面加載時(shí)自動(dòng)彈窗,同意后可以使用對(duì)應(yīng)功能,不同意退出頁面或者隱藏相關(guān)功能。
這種情況下,需要在onLoad里使用wx.getPrivacySetting獲取隱私授權(quán)情況,沒授權(quán)時(shí)彈出隱私彈窗。完整代碼如下
Page({
data: {
showPrivacy: false // 控制隱私彈窗是否展示
},
openPrivacyAgreement() {
// 查看隱私協(xié)議
wx.openPrivacyContract()
},
disagreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
// 這里是不同意隱私協(xié)議的后續(xù)操作,比如退出頁面、隱藏相關(guān)功能等
},
agreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
// 這里是同意隱私協(xié)議的后續(xù)操作,比如展示被隱藏的相關(guān)功能
},
onLoad() {
if (wx.getPrivacySetting) {
wx.getPrivacySetting({
success: res => {
if (res.needAuthorization) {
// 打開隱私彈窗
this.setData({
showPrivacy: true
})
} else {
// 用戶已經(jīng)同意過隱私協(xié)議,直接執(zhí)行同意隱私協(xié)議的后續(xù)操作,比如展示被隱藏的相關(guān)功能
}
}
})
}
}
})
2、按需使用
在使用到隱私接口時(shí)彈出隱私彈窗,同時(shí)隱私接口的流程會(huì)被掛起,用戶同意后會(huì)繼續(xù)執(zhí)行,不同意則中止執(zhí)行。
這種情況下,需要在onLoad里定義好監(jiān)聽隱私接口時(shí)的授權(quán)事件,也就是wx.onNeedPrivacyAuthorization,然后在用戶點(diǎn)擊同意或者不同意后調(diào)用回調(diào)接口 resolve 進(jìn)行上報(bào),完整代碼如下
Page({
data: {
showPrivacy: false // 控制隱私彈窗是否展示
},
openPrivacyAgreement() {
// 查看隱私協(xié)議
wx.openPrivacyContract()
},
disagreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
// 上報(bào)用戶不同意隱私協(xié)議,隱私接口操作會(huì)被自動(dòng)中止
this.resolvePrivacyAuthorization({
buttonId: 'disagreeBtn',
event: 'disagree'
})
},
agreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
// 上報(bào)用戶同意隱私協(xié)議,隱私接口操作會(huì)被自動(dòng)繼續(xù)執(zhí)行
this.resolvePrivacyAuthorization({
buttonId: 'agreeBtn',
event: 'agree'
})
},
onLoad() {
if (wx.onNeedPrivacyAuthorization) {
wx.onNeedPrivacyAuthorization(resolve => {
// 打開隱私彈窗
this.setData({
showPrivacy: true,
})
// 定義上報(bào)方法
this.resolvePrivacyAuthorization = resolve
})
}
}
})
3、全局控制和按需使用結(jié)合使用
這種情況是上面兩種方式的結(jié)合,頁面加載文章來源:http://www.zghlxwxcb.cn/news/detail-702595.html
let pageOnload = true // 是否頁面加載時(shí)彈窗
Page({
data: {
showPrivacy: false // 控制隱私彈窗是否展示
},
openPrivacyAgreement() {
// 查看隱私協(xié)議
wx.openPrivacyContract()
},
disagreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
if (!pageOnload) {
// 上報(bào)用戶不同意隱私協(xié)議,隱私接口操作會(huì)被自動(dòng)中止
this.resolvePrivacyAuthorization({
buttonId: 'disagreeBtn',
event: 'disagree'
})
} else {
pageOnload = false
}
},
agreePrivacy() {
// 關(guān)閉隱私彈窗
this.setData({
showPrivacy: false
})
if (!pageOnload) {
// 上報(bào)用戶同意隱私協(xié)議,隱私接口操作會(huì)被自動(dòng)繼續(xù)執(zhí)行
this.resolvePrivacyAuthorization({
buttonId: 'agreeBtn',
event: 'agree'
})
} else {
pageOnload = false
}
},
onLoad() {
if (wx.getPrivacySetting) {
wx.getPrivacySetting({
success: res => {
if (res.needAuthorization) {
// 打開隱私彈窗
this.setData({
showPrivacy: true
})
}
}
})
}
if (wx.onNeedPrivacyAuthorization) {
wx.onNeedPrivacyAuthorization(resolve => {
// 打開隱私彈窗
this.setData({
showPrivacy: true,
})
// 定義上報(bào)方法
this.resolvePrivacyAuthorization = resolve
})
}
}
})
時(shí)彈出隱私彈窗,不管用戶同意還是不同意都不需要做其他操作。然后用戶在用到隱私接口時(shí),根據(jù)用戶是否同意再按需決定是否再次彈窗。
這種情況下,需要在onLoad里使用wx.getPrivacySetting獲取隱私授權(quán)情況,沒授權(quán)時(shí)彈出隱私彈窗。同時(shí)定義好監(jiān)聽隱私接口時(shí)的授權(quán)事件,也就是wx.onNeedPrivacyAuthorization,然后在用戶點(diǎn)擊同意或者不同意后調(diào)用回調(diào)接口 resolve 進(jìn)行上報(bào),完整代碼如下文章來源地址http://www.zghlxwxcb.cn/news/detail-702595.html
到了這里,關(guān)于微信小程序隱私協(xié)議相關(guān)接口實(shí)際使用方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!