feat: 新增隐私保护指引

This commit is contained in:
DEV_DSW
2025-09-08 16:26:27 +08:00
parent bff0f7867f
commit 14e403d8ea
3 changed files with 242 additions and 95 deletions

View File

@@ -0,0 +1,80 @@
<template>
<view class="privacy" v-if="showPrivacy">
<view class="content">
<view class="title">隐私保护指引</view>
<view class="des">
请您仔细阅读并充分理解<text class="link" @click="handleOpenPrivacyContract">{{ privacyContractName }}</text>
如您同意前述协议的全部内容请点击同意开始使用<text class="cancel">如您不同意将被限制使用部分功能或将在您使用具体功能前再次询问以取得您的授权同意</text>
</view>
<view class="btns">
<button class="reject" @click="handleDisagree">拒绝</button>
<button class="agree" open-type="agreePrivacyAuthorization"
@agreeprivacyauthorization="handleAgreePrivacyAuthorization">
同意
</button>
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
import { onShow } from "@dcloudio/uni-app";
const showPrivacy = ref(true)
const privacyContractName = ref('隐私保护指引')
onShow(() => {
// 条件编译微信小程序
// #ifdef MP-WEIXIN
// const appVersion = wx.getAppBaseInfo().SDKVersion
// console.log("🚀 ~ appVersion:", appVersion)
wx.getPrivacySetting({
success: (res) => {
console.log("cj隐私配置", res);
if (res.errMsg == "getPrivacySetting:ok") {
privacyContractName.value = res.privacyContractName;
// showPrivacy.value = res.needAuthorization
}
},
});
// #endif
// 条件编译抖音小程序
// #ifdef MP-TOUTIAO
uni.getPrivacySetting({
success: (res) => {
console.log(res)
}
})
// #endif
})
// 拒绝
const handleDisagree = () => {
showPrivacy.value = false
}
// 同意
const handleAgreePrivacyAuthorization = () => {
showPrivacy.value = false
}
// 打开隐私保护指引
const handleOpenPrivacyContract = () => {
// 条件编译微信小程序
// #ifdef MP-WEIXIN
wx.openPrivacyContract({
fail: () => { }
})
// #endif
}
</script>
<style scoped lang="scss">
@import './styles/index.scss'
</style>

View File

@@ -0,0 +1,66 @@
.privacy {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.7);
z-index: 9999;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: end;
}
.title {
font-size: 20px;
font-weight: bold;
color: #000;
padding-bottom: 20rpx;
}
.content {
position: relative;
background-color: #fff;
padding: 15px;
border-radius: 20px 20px 0 0;
}
.des {
line-height: 21px;
}
.link {
color: #007aff;
}
.btns {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 0 40px;
}
.reject,
.agree {
border-radius: 50px;
width: 45%;
border: none;
font-size: 18px;
margin: 0;
&::after {
border: none;
}
}
.reject {
color: #000;
background-color: #f5f5f5;
border-radius: 50px;
}
.agree {
color: #fff;
background-color: #007aff;
}

View File

@@ -1,100 +1,101 @@
{ {
"name": "YGTianmuCS", "name": "YGTianmuCS",
"appid": "__UNI__BB03E8A", "appid": "__UNI__BB03E8A",
"description": "", "description": "",
"versionName": "1.0.0", "versionName": "1.0.0",
"versionCode": "100", "versionCode": "100",
"transformPx": false, "transformPx": false,
/* 5+App */ /* 5+App */
"app-plus": { "app-plus": {
"usingComponents": true, "usingComponents": true,
"nvueStyleCompiler": "uni-app", "nvueStyleCompiler": "uni-app",
"compilerVersion": 3, "compilerVersion": 3,
"splashscreen": { "splashscreen": {
"alwaysShowBeforeRender": true, "alwaysShowBeforeRender": true,
"waiting": true, "waiting": true,
"autoclose": true, "autoclose": true,
"delay": 0 "delay": 0
},
"safearea": {
"bottom": {
"offset": "auto" // 自动适配安全区域
}
},
/* */
"modules": {},
/* */
"distribute": {
/* android */
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {},
/* SDK */
"sdkConfigs": {
"oauth": {}
}
}
}, },
/* */ "safearea": {
"quickapp": {}, "bottom": {
/* */ "offset": "auto" // 自动适配安全区域
"mp-weixin": { }
"appid": "wx5e79df5996572539",
"setting": {
"urlCheck": false
},
"usingComponents": true,
"requiredPrivateInfos": ["getLocation"],
"permission": {
"scope.userLocation": {
"desc": "用于获取当前所在城市信息"
}
},
"plugins": {
"WechatSI": {
"version": "0.3.6",
"provider": "wx069ba97219f66d99"
}
}
}, },
"mp-alipay": { /* */
"usingComponents": true "modules": {},
}, /* */
"mp-baidu": { "distribute": {
"usingComponents": true /* android */
}, "android": {
"mp-toutiao": { "permissions": [
"usingComponents": true "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
}, "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"uniStatistics": { "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"enable": false "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
}, "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"vueVersion": "3", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"h5": { "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"router": { "<uses-permission android:name=\"android.permission.CAMERA\"/>",
"base": "./", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"mode": "hash" "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
}, "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"devServer": { "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"https": false "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
} "<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {},
/* SDK */
"sdkConfigs": {
"oauth": {}
}
} }
},
/* */
"quickapp": {},
/* */
"mp-weixin": {
"appid": "wx5e79df5996572539",
"setting": {
"urlCheck": false
},
"usingComponents": true,
"requiredPrivateInfos": ["getLocation"],
"permission": {
"scope.userLocation": {
"desc": "用于获取当前所在城市信息"
}
},
"plugins": {
"WechatSI": {
"version": "0.3.6",
"provider": "wx069ba97219f66d99"
}
},
"__usePrivacyCheck__": true
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "3",
"h5": {
"router": {
"base": "./",
"mode": "hash"
},
"devServer": {
"https": false
}
}
} }