更新记录

1.0.1(2023-10-01)

微信小程序隐私协议授权弹窗组件发布


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.8.1 × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

 本插件已集成隐私协议授权判断逻辑,从未同意过会自动弹窗,已同意过不再弹窗,请在每次需要调用隐私接口前使用。

Mehod

方法名 入参 作用
check Object 检查是否需要隐私协议授权并按需弹窗

check入参

参数 类型 说明
agree Function 已同意回调,点击同意按钮或者已同意过(不需要弹窗)回调
disAgree Function 不同意回调,点击不同意按钮回调
complete Function 完成回调,所有情况都走该回调

调用方法有2种

第一种:需要单独引入组件标签

<lq-privacy-dialog ref="privacyDialog" />
this.$refs.privacyDialog.check({
                //已同意
                    agree:()=>{
                    //底下写隐私接口调用逻辑,例如获取位置
                        uni.getLocation({
                            success(e) {
                                console.log(e)
                            }
                        })
                    },
                    //不同意
                    disAgree:()=>{
                        console.log('不同意')
                    }
})

第二种方法(推荐):全局api调用

main.js添加:

import privacyCheck from '@/components/lq-privacy-dialog/privacyCheck.js'
//设置全局api
Vue.prototype.$privacyCheck=privacyCheck

vue.config.js添加(如果没有该文件新建一个,位于项目根目录):

module.exports = {
  chainWebpack: config => {
    config.module.rule('vue').use('vue-loader').loader('vue-loader').tap(options => {
      const compile = options.compiler.compile
      options.compiler.compile = (template, ...args) => {
        if (args[0].resourcePath.match(/^pages/)) {
          template = template.replace(/[\s\S]+?<[\d\D]+?>/, _ => `${_}
            <lq-privacy-dialog ref="privacyDialog" />
      `)
        }
        return compile(template, ...args)
      }
      return options
    })
  }
}

页面使用:

this.$privacyCheck({
                    //已同意
                    agree:()=>{
                    //底下写隐私接口调用逻辑,例如获取位置
                        uni.getLocation({
                            success(e) {
                                console.log(e)
                            }
                        })
                    },
                    //不同意
                    disAgree:()=>{
                        console.log('不同意')
                    }
                })

第二种方法无须引入组件标签直接在页面需要的地方通过this.$privacyCheck()调用即可。注意需要在mounted后调用(等组件渲染完成)

ps:隐私协议具体如何设置请仔细查看微信文档说明,需要再小程序后台设置审核通过才能生效,2023年10月17日前并在manifest.json切换到源码试图在mp-weixin字段内添加"usePrivacyCheck": true

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问