微信小程序隐私API调用(如相册,拍照等)需要先同意隐私协议

首先是微信公众号平台-小程序设置隐私协议

在这里插入图片描述

在这里插入图片描述
添加你需要用到的类型并提交
在这里插入图片描述
注意的是提交完之后会有一个审核的过程,在这个过程中依然是无法调用隐私API的

调用API前需要弹框同意隐私协议

  1. 首先准备一个隐私协议的弹框
    在这里插入图片描述
// html 部分
<view class="comp-container" v-if="visible">
	<view class="dialog">
		<view class="title">用户隐私保护提示</view>
		<view class="desc">
			感谢您使用本小程序,在使用前您应当阅读并同意<text class="privacy"
				@click="handleOpenPrivacyContract">《用户隐私保护指引》</text>,当点击同意,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用小程序相关功能。
		</view>
		<view class="footer">
			<button type="default" class="btn disagree" @click="handleDisagree">不同意</button>
			<button type="default" open-type="agreePrivacyAuthorization" class="btn agree"
				@agreeprivacyauthorization="handleAgree">同意</button>
		</view>
	</view>
</view>
// css 部分
<style lang="scss" scoped>
.comp-container {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		background-color: rgba(0, 0, 0, 0.6);
		z-index: 999;
	}
	.dialog {
		color: #333;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		background-color: #fff;
		border-radius: 20rpx;
		padding: 50rpx 40rpx;
		width: 560rpx;
		box-sizing: border-box;
		.title {
			width: 100%;
			color: #000;
			text-align: center;
			font-size: 32rpx;
			font-weight: 650;
			box-sizing: border-box;
		}
		.desc {
			line-height: 40rpx;
			box-sizing: border-box;
			margin-top: 50rpx;
			font-size: 26rpx;

			.privacy {
				color: #2f80ed;
			}
		}
		.footer {
			width: 100%;
			display: flex;
			align-items: center;
			justify-content: space-between;
			margin-top: 30rpx;
			.btn {
				display: flex;
				align-items: center;
				color: #FFF;
				font-size: 28rpx;
				font-weight: 500;
				line-height: 80rpx;
				text-align: center;
				height: 80rpx;
				border-radius: 10rpx;
				border: none;
				background: #07c160;
				flex: 1;
				justify-content: center;
				&:nth-last-child(1) {
					margin-left: 30rpx;
				}
				&.disagree {
					color: #333;
					background: #f2f2f2;
				}
			}
		}
	}
</style>
// js 
<script>
// 调用相册api前调用
openImg(){
	// 查询是否已经同意过隐私协议 
	wx.getPrivacySetting({
		success: res => {
			console.log(res) // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
			if (!res.needAuthorization) {
				console.log('弹框') 
				this.visible = true // 打开隐私弹框
				console.log('弹框',this.visible)
			} else {
			  // 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用隐私接口
				console.log('打开相册')
				wx.chooseMedia({
				count: 1,
				mediaType: ['image'],
				sourceType: ['album', 'camera'],
				camera: 'back',
				success: res => {
						const filePath = res.tempFiles[0].tempFilePath
						// 上传选择的图片到oss 
						this.onChooseAvatar(filePath)
					}
				})
			}
		},
		fail: () => {},
		complete: () => {}
	})
},
//同意协议后调用相册api
handleAgree(){
	console.log('同意隐私协议')
	this.visible = false;
	console.log('打开相册')
	wx.chooseMedia({
		count: 1,
		mediaType: ['image'],
		sourceType: ['album', 'camera'],
		camera: 'back',
		success: res => {
			const filePath = res.tempFiles[0].tempFilePath
			this.onChooseAvatar(filePath)
		}
	})
},
//不同意协议关闭弹框
handleDisagree(){
	this.visible = false;
},
// 打开协议详情
handleOpenPrivacyContract(){
	uni.openPrivacyContract()
},
// 上传图片 
onChooseAvatar(filePath) {
	uni.uploadFile({
		url: 'https://xxxxx', // 后台给的接口
		filePath: filePath, //本地地址
		name: 'file', // 后端定的文件字段名
		success: res => {
			let data = JSON.parse(res.data); //z转码
			
			this.image = data.data.fullurl // 获取地址
			
		}
	})
}
</script>
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序API调用流程分为以下几步: 1. 准备工作:开发者需要在微信开放平台申请小程序账号并创建小程序,获取到小程序的AppID。 2. 注册小程序:在小程序入口文件app.js中使用App()进行小程序的注册,并在其中配置小程序的全局信息。 3. 登录:小程序需要通过微信用户登录接口获取到用户的登录态,以便后续的API调用。开发者可以通过wx.login()接口获取到用户登录凭证code,再将code发送到开发者的后台服务器进行校验换取session_key和openid等用户信息。 4. 获取用户信息:通过wx.getUserInfo()接口可以获取到用户的基本信息,如昵称、头像等,但需要用户进行授权同意。 5. 接口调用凭证:为了保护用户数据的安全性,在小程序调用涉及用户隐私数据的一些接口时,需要使用接口调用凭证access_token。 6. 授权操作:在需要使用某些接口之前,需要用户进行授权同意,例如获取用户位置信息、相册等。开发者可以使用wx.authorize()接口进行授权操作,用户同意授权后,才能调用相关接口。 7. 接口调用:在授权完成后,开发者可以使用各种wx.*()接口进行相关操作,如发送请求、上传文件、支付等。 8. 接口返回:根据接口的特点和需求,接口调用可能会同步返回结果,也可能是异步返回结果。开发者需要根据接口返回的结果进行后续的处理操作。 9. 错误处理:在接口调用过程中,可能会出现各种错误情况,例如网络错误、参数错误等。开发者可以使用try-catch语句进行错误处理,以保证程序的稳定性和可靠性。 10. 完善功能:根据实际需求,开发者可以继续完善小程序的功能,如添加页面、优化用户交互体验等。 总结:微信小程序API调用流程主要包括准备工作、登录、获取用户信息、接口调用凭证、授权操作、接口调用、接口返回、错误处理等步骤。通过合理的调用API,开发者可以实现各种功能,提升小程序的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值