当前位置:   article > 正文

小程序隐私信息授权wx.onNeedPrivacyAuthorization vue2+uniapp / vue3

wx.onneedprivacyauthorization

记录一下微信隐私信息授权接口相关配置使用。小程序是uniapp+vue2开发

1.首先需要去到微信公众平台,申请小程序中用到的所有隐私接口。可参考

用户隐私保护指引填写说明 | 微信开放文档

小程序用户隐私保护指引内容介绍 | 微信开放文档 在这里配置和查看需要申请的接口。

2.需要在manifest.json中配置 "__usePrivacyCheck__": true,正式开始使用的时候不配置也是可以的。

3.封装一个组件方便后续在每一个用到隐私接口的页面中引入使用

  其中uniapp中注意button上使用的是@agreeprivacyauthorization来触发隐私授权方法

  1. <template>
  2. <view class="privacy-box">
  3. <u-popup :show="show" @close="close" @open="open" :round="10">
  4. <view class="popup-box">
  5. <view class="">
  6. 隐私指引弹窗
  7. </view>
  8. <view class="" @click="openPrivacyPolicy">
  9. 在您使用xxx小程序前,请仔细阅读<text style="color: #2F74ED;">《xxxx隐私保护协议》</text>
  10. 如您同意《xxxxx隐私保护协议》,请点击“同意”,开始使用xxxx小程序。
  11. </view>
  12. <view class="btn-group">
  13. <button @click="refuse">拒绝</button>
  14. <button id="agree-btn" open-type="agreePrivacyAuthorization"
  15. @agreeprivacyauthorization="handleAgreePrivacyAuthorization" type="primary">同意</button>
  16. </view>
  17. </view>
  18. </u-popup>
  19. </view>
  20. </template>

js部分直接在mounted中调用api即可

  1. export default {
  2. data() {
  3. return {
  4. show: false
  5. }
  6. },
  7. mounted() {
  8. wx.onNeedPrivacyAuthorization(resolve => {
  9. console.log("done");
  10. // 需要用户同意隐私授权时
  11. // 弹出开发者自定义的隐私授权弹窗
  12. this.show = true
  13. this.resolvePrivacyAuthorization = resolve
  14. })
  15. },
  16. methods: {
  17. openPrivacyPolicy() {
  18. wx.openPrivacyContract()
  19. },
  20. handleAgreePrivacyAuthorization() {
  21. console.log("用户点击同意授权");
  22. this.resolvePrivacyAuthorization({
  23. buttonId: 'agree-btn',
  24. event: 'agree'
  25. })
  26. this.show = false
  27. },
  28. refuse() {
  29. this.show = false
  30. this.resolvePrivacyAuthorization({
  31. event: 'disagree'
  32. })
  33. console.log("不同意");
  34. },
  35. close() {
  36. this.show = false
  37. },
  38. }
  39. }

tips:如果到进入页面时候就调用授权位置信息,也不会和隐私授权弹窗冲突。这里会自动判断是否授权过隐私授权,先弹出隐私授权的弹窗后再弹出授权位置信息。同理获取手机号组件。

获取手机号和复制这种只有在用户点击的时候才会触发弹出隐私授权弹框。

另外获取用户昵称 input type=“nickname”无法触发隐私授权,可以通过wx.requirePrivacyAuthorize来辅助验证。

///以下vue3封装组件写法

  1. <script setup>
  2. import {
  3. ref,
  4. onMounted,
  5. getCurrentInstance
  6. } from "vue"
  7. import {
  8. paramasUserStore
  9. } from "@/store/params.js"
  10. const paramsStore = paramasUserStore()
  11. const {
  12. proxy
  13. } = getCurrentInstance()
  14. onMounted(() => {
  15. wx.onNeedPrivacyAuthorization(resolve => {
  16. console.log("done");
  17. // 需要用户同意隐私授权时
  18. // 弹出开发者自定义的隐私授权弹窗
  19. show.value = true
  20. proxy.resolvePrivacyAuthorization = resolve
  21. })
  22. })
  23. const show = ref(false)
  24. //跳转到隐私授权介绍页面
  25. function openPrivacyPolicy() {
  26. wx.openPrivacyContract()
  27. }
  28. function handleAgreePrivacyAuthorization() {
  29. console.log("用户点击同意授权");
  30. proxy.resolvePrivacyAuthorization({
  31. buttonId: 'agree-btn',
  32. event: 'agree'
  33. })
  34. show.value = false
  35. }
  36. function refuse() {
  37. proxy.resolvePrivacyAuthorization({
  38. event: 'disagree'
  39. })
  40. show.value = false
  41. console.log("不同意");
  42. }
  43. function close() {
  44. show.value = false
  45. }
  46. </script>

  1. .privacy-box {
  2. // width: 100%;
  3. // height: 540rpx;
  4. .popup-box {
  5. width: 94%;
  6. display: flex;
  7. flex-direction: column;
  8. align-items: center;
  9. margin: 0 auto;
  10. // justify-content: center;
  11. >view:first-child {
  12. font-size: 36rpx;
  13. font-weight: bold;
  14. color: #1AAD19;
  15. padding: 40rpx 0;
  16. }
  17. >view:nth-child(2) {
  18. text-indent: 40rpx;
  19. line-height: 60rpx;
  20. margin-bottom: 40rpx;
  21. }
  22. .btn-group {
  23. width: 100%;
  24. display: flex;
  25. justify-content: space-between;
  26. margin-bottom: 40rpx;
  27. >button {
  28. width: 240rpx;
  29. height: 100rpx;
  30. }
  31. }
  32. }
  33. }

 

官方新增隐私弹窗功能

--不用开发者自己书写弹窗组件和逻辑,只需要在manifest.json中配置 "__usePrivacyCheck__": true即可启用。(目前最新项目本人使用该模式进行隐私授权的提示)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/292304
推荐阅读
相关标签
  

闽ICP备14008679号