• 微信小程序隐私授权


    微信开发者平台新公告:2023年9月15之后,隐私协议将被启用,所以以后的小程序都要加上隐私协议的内容提示用户,

    首先设置好隐私协议的内容,登录小程序的开发者后台,在设置--》服务内容声明--》用户隐私保护指引,点击右侧的“更新”,可以在线编辑隐私协议内容,编辑完保存;

    然后在代码中创建一个components文件夹,用来放自定义组件,在里面创建一个privacy组件,

    组件里面的各个页面的代码:

    privacy.js:

    1. // component/privacy/privacy.js
    2. Component({
    3. /**
    4. * 组件的初始数据
    5. */
    6. data: {
    7. privacyContractName: '',
    8. showPrivacy: false
    9. },
    10. /**
    11. * 组件的生命周期
    12. */
    13. pageLifetimes: {
    14. show() {
    15. const _ = this
    16. wx.getPrivacySetting({
    17. success(res) {
    18. if (res.needAuthorization) {
    19. _.setData({
    20. privacyContractName: res.privacyContractName,
    21. showPrivacy: true
    22. })
    23. }
    24. }
    25. })
    26. }
    27. },
    28. /**
    29. * 组件的方法列表
    30. */
    31. methods: {
    32. // 打开隐私协议页面
    33. openPrivacyContract() {
    34. const _ = this
    35. wx.openPrivacyContract({
    36. fail: () => {
    37. wx.showToast({
    38. title: '遇到错误',
    39. icon: 'error'
    40. })
    41. }
    42. })
    43. },
    44. // 拒绝隐私协议
    45. exitMiniProgram() {
    46. // 直接退出小程序
    47. wx.exitMiniProgram()
    48. },
    49. // 同意隐私协议
    50. handleAgreePrivacyAuthorization() {
    51. const _ = this
    52. _.setData({
    53. showPrivacy: false
    54. })
    55. },
    56. },
    57. })

    privacy.json:

    1. {
    2. "component": true,
    3. "usingComponents": {}
    4. }

    privacy.wxml:

    1. <view class="privacy" wx:if="{{showPrivacy}}">
    2. <view class="content">
    3. <view class="title">隐私保护指引</view>
    4. <view class="des">
    5. 在使用当前小程序服务之前,请仔细阅读<text class="link" bind:tap="openPrivacyContract">{{privacyContractName}}</text>。为了完整体验,请您点击“同意”开始使用。
    6. </view>
    7. <view class="btns">
    8. <button class="item reject" bind:tap="exitMiniProgram">拒绝</button>
    9. <button id="agree-btn" class="item agree" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
    10. </view>
    11. </view>
    12. </view>

    privacy.wxss:

    1. .privacy {
    2. position: fixed;
    3. top: 0;
    4. right: 0;
    5. bottom: 0;
    6. left: 0;
    7. background: rgba(0, 0, 0, .5);
    8. z-index: 9999999;
    9. display: flex;
    10. align-items: center;
    11. justify-content: center;
    12. }
    13. .content {
    14. width: 632rpx;
    15. padding: 48rpx;
    16. box-sizing: border-box;
    17. background: #fff;
    18. border-radius: 16rpx;
    19. }
    20. .content .title {
    21. text-align: center;
    22. color: #333;
    23. font-weight: bold;
    24. font-size: 32rpx;
    25. }
    26. .content .des {
    27. font-size: 26rpx;
    28. color: #666;
    29. margin-top: 40rpx;
    30. text-align: justify;
    31. line-height: 1.6;
    32. }
    33. .content .des .link {
    34. color: #07c160;
    35. text-decoration: underline;
    36. }
    37. .btns {
    38. margin-top: 48rpx;
    39. display: flex;
    40. }
    41. .btns .item {
    42. justify-content: space-between;
    43. width: 244rpx;
    44. height: 80rpx;
    45. display: flex;
    46. align-items: center;
    47. justify-content: center;
    48. border-radius: 16rpx;
    49. box-sizing: border-box;
    50. border: none;
    51. }
    52. .btns .reject {
    53. background: #f4f4f5;
    54. color: #909399;
    55. }
    56. .btns .agree {
    57. background: #07c160;
    58. color: #fff;
    59. }

    一般在首页(小程序第一个加载的页面)把这个隐私协议组件引入,例如index是我的首页,在index.json文件内引入这个组件:

    1. {
    2. "navigationBarTitleText": "首页",
    3. "enablePullDownRefresh": false,
    4. "usingComponents": {
    5. "custom-tab-bar": "/components/custom-tab-bar/index",
    6. "Privacy": "/components/privacy/privacy"
    7. }
    8. }

    然后在index.wxml页面放这个组件就行了,可以放到任意位置:

    1. <Privacy />

    这样第一次进入小程序的时候会出现一个弹窗,用户点击同意后就不会再出现了,除非主动删除了这个小程序,

    这样隐私协议就引入结束了。

  • 相关阅读:
    服务器的类别和特性有哪些?
    Torch基础(二)
    vue学习-02vue入门之组件
    机器学习算法一之DBSCAN聚类原理与实现(二维及三维)
    插件化编程之WebAPI统一返回模型
    CodeTon Round 2 D. Magical Array 规律
    java从键盘输入Scanner
    wy的leetcode刷题记录_Day51
    Linux网络:网络层IP协议 链路层MAC协议
    Pytorch编程基础
  • 原文地址:https://blog.csdn.net/spring_007_999/article/details/132898748