当前位置: 首页 > news >正文

广州联亨科技网站建设河南建设部网站官网

广州联亨科技网站建设,河南建设部网站官网,精美ppt模板免费下载百度文库,是怎么回事儿使用wx.requirePrivacyAuthorize实现微信小程序用户隐私保护。 一、前言 微信小程序官方出了一个公告《关于小程序隐私保护指引设置的公告》。不处理的话,会导致很多授权无法使用,比如头像昵称、获取手机号、位置、访问相册、上传图片视频、访问剪切板…

使用wx.requirePrivacyAuthorize实现微信小程序用户隐私保护。

一、前言

微信小程序官方出了一个公告《关于小程序隐私保护指引设置的公告》。不处理的话,会导致很多授权无法使用,比如头像昵称、获取手机号、位置、访问相册、上传图片视频、访问剪切板内容等等,具体详见《小程序用户隐私保护指引内容介绍》 。

二、隐私相关设置

1、在 微信小程序后台的【设置】- 【服务内容与声明】 ,设置好用户隐私保护指引。

比如:上传头像报错如下。

chooseAvatar:fail api scope is not declared in the privacy agreement。

注意事项

隐私协议里,需要添加对应权限,否则权限对应api的不会生效!!!

隐私协议里,需要添加对应权限,否则权限对应api的不会生效!!!

隐私协议里,需要添加对应权限,否则权限对应api的不会生效!!!

2、打开uniapp 项目的 manifest.json ,选择【源码视图】, 添加配置如下配置

"mp-weixin": {"__usePrivacyCheck__": true, //隐私政策},

3、设置微信开发者工具的调试基础库,最低2.33.0

 

三、解决方案

1)验证用户是否已经隐私授权

使用wx.requirePrivacyAuthorize() 接口,验证用户之前已经同意过隐私授权

onReady() {var _this = this;// 隐私政策wx.getPrivacySetting({success: res => {// 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }console.log(res)if (res.needAuthorization) {// 需要弹出隐私协议_this.$refs.privacy.privacyShow = true;return;} else {// 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用隐私接口}},fail: () => {},complete:() => {}})
},

 如果needAuthorization返回值为true,则需要用户进行隐私授权。

2)index引入组件

<template><view><!-- 用户隐私保护指引弹窗租金 --><UserPrivacy ref="privacy"></UserPrivacy></view>
</template><script>
import UserPrivacy from "@/components/user/userPrivacy.vue";export default {components: {UserPrivacy},data() {return {// 隐私设置弹窗开关privacyShow: false,}},onReady() {var _this = this;// #ifdef MP-WEIXIN// 隐私政策wx.getPrivacySetting({success: res => {// 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }console.log(res)if (res.needAuthorization) {// 显示用户隐私组件弹窗_this.$refs.privacy.privacyShow = true;return;} else {// 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用隐私接口// 调用授权位置接口_this.getLocation();}},fail: () => {},complete:() => {}})// #endif,methods: {// 获取当前位置getLocation() {let _this = this;var mapkey = uni.getStorageSync('webConfig').web_config_str.mapkey;uni.getFuzzyLocation({type: 'gcj02', //国测局坐标gcj02geocode: true, //是否解析地址信息,仅App平台支持isHighAccuracy: true, //开启高精度定位success(res) {console.log('==获取当前位置的经纬度-成功==');console.log(res);_this.longitude = res.longitude;_this.latitude = res.latitude;// 设置经纬度缓存uni.setStorageSync('longitude', res.longitude);uni.setStorageSync('latitude', res.latitude);// 引入腾讯地图SDK核心类var QQMapWX = require('@/util/qqmap-wx-jssdk.min.js');var qqmapsdk = new QQMapWX({key: mapkey,});// 根据经纬度获取所在位置qqmapsdk.reverseGeocoder({location: {longitude: res.longitude,latitude: res.latitude,},success: function(res) {console.log("==根据经纬度获取所在位置==");console.log(res);_this.city = res.result.ad_info.city;// 设置城市缓存uni.setStorageSync('province', res.result.ad_info.province);uni.setStorageSync('city', res.result.ad_info.city);uni.setStorageSync('district', res.result.ad_info.district);uni.setStorageSync('address', res.result.address);}});},fail(err) {console.log('获取当前位置的经纬度-失败');// 设置默认城市、经纬度}});},}
}
</script>

3)  弹窗组件代码

<template><view><!-- 隐私保护指引弹窗 --><u-popup v-model="privacyShow" mode="center" width="600rpx" border-radius="20" :mask-close-able="false"><view class="privacyBox"><view class="privacyTit">用户隐私保护提示</view><view class="privacyDesc">感谢您的使用,在使用本小程序前,应当阅读并同意<text@click="openClick">《用户隐私保护指引》</text>。当您点击同意并开始使用程序服务时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法进入小程序。</view><view class="privacyPost"><view class="refuseBtn"><navigator target="miniProgram" open-type="exit">不同意并退出</navigator></view><button class="agreeBtn" open-type="agreePrivacyAuthorization"@agreeprivacyauthorization="agreeClick">同意并继续</button></view></view></u-popup></view>
</template><script>export default {data() {return {// 隐私设置弹窗开关privacyShow: false,}},onReady() {},methods: {// 打开隐私协议openClick() {wx.openPrivacyContract({success: () => {}, // 打开成功fail: () => {}, // 打开失败complete: () => {}})},// 同意agreeClick() {// 用户点击了同意,之后所有已声明过的隐私接口和组件都可以调用了this.privacyShow = false;// 重新授权定位,调取父组件方法this.$parent.getLocation();},}}
</script><style scoped lang="scss">.privacyBox {width: 600rpx;padding: 60rpx;box-sizing: border-box;}.privacyTit {font-size: 32rpx;font-weight: bold;color: $uni-text-main;text-align: center;overflow: hidden;}.privacyDesc {font-size: 28rpx;color: $uni-text-sub;overflow: hidden;margin-top: 30rpx;}.privacyDesc text {color: $uni-primary;}.privacyPost {overflow: hidden;margin-top: 60rpx;display: flex;justify-content: center;align-items: center;}.privacyPost .refuseBtn {flex: 1;height: 80rpx;line-height: 80rpx;text-align: center;font-size: 28rpx;font-weight: bold;color: #fff;background: $uni-info-dark;border-radius: 40rpx;box-sizing: border-box;overflow: hidden;}.privacyPost .agreeBtn {flex: 1;height: 80rpx;line-height: 80rpx;text-align: center;font-size: 28rpx;font-weight: bold;color: #fff;background: $uni-primary;border-radius: 40rpx;box-sizing: border-box;overflow: hidden;margin-left: 20rpx;}
</style>

 ps:弹窗组件框架,本人用的uView1版本。底层遮罩样式,可自行用view代替。

4)弹窗效果图

四、思路总结

1、调用wx.getPrivacySetting来确认用户是否进行过隐私授权。

2、如果已授权,直接调用位置接口、上传头像接口、上传图片视频接口等等;否则,显示弹窗,让用户进行授权。

五、处理不生效方法

http://www.yayakq.cn/news/741453/

相关文章:

  • 常州淄博网站优化积分商城
  • 网站建设意见征求网站建设品牌公司排名
  • 南昌定制网站开发费用建设银行网站背景图片
  • 长春网站制作公司哪个好dw制作网页入门
  • ps制作网站背景django网站开发源码
  • 网站网站建设考虑要素西宁网络推广公司
  • 网络营销网站策划商城网站开发流程图
  • 福州哪家企业网站建设设计最高端建设银行官方投诉网站
  • 免费自助创建网站html5网站和传统网站的优点
  • discuz怎么做网站地图餐饮加盟网站模板
  • 用dreamriver做html网站微网站技术
  • 丽水企业网站建设汕头网站优化公司
  • 如何做网站关键词优化wordpress好主题
  • 网上做调查网站有哪些做视频资源网站有哪些
  • 做电影网站的资源从哪里换wordpress主题 水墨
  • 网站上传完成后要怎么做津南区网络推广公司
  • 扬州高端网站制作肥乡网站建设
  • 织梦可以做大型网站吗定制建站网站
  • 公司网站设计思路网站开发建站微信公众号小程序
  • 网站建设培训报名免费行情软件网站大全
  • 南京高端网站定制网站简繁体转换 js
  • 爱站网关键词查询公司展厅设计制作
  • 濂溪区建设局网站网站备案怎么弄
  • 网站建设经验鄂州seo多少钱
  • 根据一个网站仿做新网站是什么网站开发 网站 费用
  • 快速做网站流量数据统计分析宁夏网站营销推广
  • 网站备案最多需要多久龙岩天宫山可以开车上去吗
  • 黄冈商城网站建设弧度网站建设
  • html5网站怎么建设后台怎么弄网站建设怎样上传程序
  • 域名做网站出售合法吗网站seo是什么意