当前位置:   article > 正文

uniapp wx.getPrivacySetting 小程序授权隐私协议开发_uniapp getprivacysetting

uniapp getprivacysetting
wx.getPrivacySetting(Object object) | 微信开放文档微信开发者平台文档icon-default.png?t=N7T8https://developers.weixin.qq.com/miniprogram/dev/api/open-api/privacy/wx.getPrivacySetting.html
wx.getPrivacySetting 

可以用uni.getPrivacySetting代替处理

object.success 回调函数
参数
Object res
属性类型说明
needAuthorizationboolean是否需要用户授权隐私协议(如果开发者没有在[mp后台-设置-服务内容声明-用户隐私保护指引]中声明隐私收集类型则会返回false;如果开发者声明了隐私收集,且用户之前同意过隐私协议则会返回false;如果开发者声明了隐私收集,且用户还没同意过则返回true;如果用户之前同意过、但后来小程序又新增了隐私收集类型也会返回true)
privacyContractNamestring隐私授权协议的名称

组件文件  privacyPopup.vue

  1. <template>
  2. <uni-popup
  3. v-show="showPrivacy"
  4. ref="popup"
  5. :is-mask-click="false"
  6. mask-background-color="rgba(0,0,0,0.4)">
  7. <view class="popup-content">
  8. <view><text class="title">{{privacyTitle}}</text></view>
  9. <view class="desc">
  10. <text>{{privacyDescStart}}: \n</text>
  11. <text class="desc-linK" @click="openPrivacyContract">{{privacyContractName}}</text>
  12. <text>\n{{privacyDescEnd}}</text>
  13. </view>
  14. <view class="flex">
  15. <button class="btn flex-item" type="default" @click="reject" id="reject-btn">拒绝</button>
  16. <button class="btn flex-item" type="primary" id="agree-btn"
  17. open-type="agreePrivacyAuthorization"
  18. style="margin-left: 28rpx;"
  19. @agreeprivacyauthorization="agreeAuth"
  20. >同意</button>
  21. </view>
  22. </view>
  23. </uni-popup>
  24. </template>
  25. <script>
  26. export default {
  27. data() {
  28. return {
  29. showPrivacy: false,
  30. privacyTitle: '用户隐私保护提示',
  31. privacyContractName: '《查看隐私协议》',
  32. privacyDescStart:'在你使用宜小集服务服务之前,请仔细阅读',
  33. privacyDescEnd:'如你同意该指引,请点击“同意”开始使用本小程序。'
  34. }
  35. },
  36. onLoad() {
  37. },
  38. created() {
  39. wx.getPrivacySetting({
  40. success: res => {
  41. //返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
  42. this.privacyContractName = res?.privacyContractName||'《查看隐私协议》'
  43. if (res.needAuthorization) {
  44. console.log('needAuthorization')
  45. console.log(res)
  46. // 需要弹出隐私协议
  47. this.showPrivacy = true
  48. // 我是直接用uniapp存在本地缓存了,如果用第三方自行处理
  49. uni.setStorage({key: 'showPrivacy',data: true})
  50. this.$refs.popup.open('bottom')
  51. }else{
  52. this.hidePrivacy()
  53. }
  54. },
  55. fail: () => {},
  56. complete: () => {}
  57. })
  58. },
  59. methods: {
  60. async agreeAuth(e) {
  61. if (e?.detail?.errMsg === 'agreePrivacyAuthorization:ok') {
  62. // 点击同意后自行处理
  63. console.log(e.detail)
  64. }
  65. this.hidePrivacy()
  66. },
  67. openPrivacyContract() {
  68. // 打开隐私协议页面
  69. wx.openPrivacyContract({
  70. success: () => { console.log('打开隐私协议页面')}, // 打开成功
  71. fail: () => {}, // 打开失败
  72. complete: () => {}
  73. })
  74. },
  75. reject() {
  76. // 点击最拒绝后我没清掉本地缓存,可根据业务需求处理
  77. this.showPrivacy = false
  78. },
  79. hidePrivacy(){
  80. // 清掉本地缓存showPrivacy
  81. uni.removeStorageSync('showPrivacy')
  82. this.showPrivacy = false
  83. }
  84. }
  85. }
  86. </script>
  87. <style scoped lang='scss'>
  88. .popup-content {
  89. height: 40vh;
  90. border-radius: 40rpx 40rpx 0 0;
  91. padding: 100rpx 30rpx 30rpx 30rpx;
  92. text-align: left;
  93. box-sizing: border-box;
  94. background-color:#fff
  95. }
  96. .title{
  97. font-size: 36rpx;
  98. font-weight: 500;
  99. color: #333333;
  100. line-height: 40rpx;
  101. }
  102. .desc{
  103. font-size: 32rpx;
  104. color: #737373;
  105. line-height: 50rpx;
  106. margin: 30rpx auto;
  107. }
  108. .btn::after{
  109. border: none;
  110. }
  111. .desc-linK{
  112. color: #00aaff;
  113. line-height: 40rpx;
  114. margin-bottom: 30rpx;
  115. }
  116. </style>

this.$refs.popup.open('bottom')是uniapp拓展组件 所以用v-show="showPrivacy"

如果用v-if 则会报找不到错误 

直接在需要小程序弹出隐私协议页面引用组件即可

组件的使用,没有

  1. <template>
  2. <view>
  3. .....
  4. <privacy-popup></privacy-popup>
  5. </view>
  6. </template>
  7. <script lang="ts">
  8. //组件路径
  9. import privacyPopup from '@/pages/components/privacyPopup.vue'
  10. export default {
  11. components: {privacyPopup},
  12. data() {
  13. }
  14. //...
  15. }
  16. </script>

显示效果,这个件没有过多的逻辑处理,只有同意过后就不再弹窗,

在测试时 needAuthorization 过一段时间就变为true 就会再次弹窗

使用该可以根据自己的业务处理

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

闽ICP备14008679号