很简单,把 <button open-type="agreePrivacyAuthorization" /> 做成登录页中常见并且需要勾选的【已阅读并同意《用户协议》、《隐私协议》】的那个radio就行了
<template>
<view>
<view class="flex"><text>手机号</text><text>18612341234</text></view>
<view class="flex"><text>短信验证码</text><text>1234</text></view>
<button v-if="!isChecked" @click="handlegetPhonenumberFake">获取手机号(假)</button>
<button v-else open-type="getPhoneNumber" @getphonenumber="handlegetPhonenumber"> 获取手机号(真)</button>
<view class="flex">
<button
class="radio"
:class="{ current: isChecked }"
open-type="agreePrivacyAuthorization"
@click="handleClick"
/>
已阅读并同意《隐私协议》、《用户协议》
</view>
<button @click="handleLogin">登录</button>
</view>
</template>
<script>
export default {
data() {
return { isChecked: false };
},
mounted() {},
methods: {
handlegetPhonenumberFake() {
uni.showToast({
title: '请先阅读并勾选隐私协议、用户协议',
icon: 'none',
duration: 2000,
});
},
handlegetPhonenumber(event) {
if (this.isChecked) {
const { iv, code } = event.detail;
console.log('iv', iv);
console.log('code', code);
} else {
uni.showToast({
title: '请先阅读并勾选隐私协议、用户协议',
icon: 'none',
duration: 2000,
});
}
},
handleClick() {
this.isChecked = !this.isChecked;
},
handleLogin() {
if (this.isChecked) {
// 登录业务代码...
// 登录成功后返回页面
uni.navigateBack();
} else {
uni.showToast({
title: '请先阅读并勾选隐私协议、用户协议',
icon: 'none',
duration: 2000,
});
}
},
},
};
官方文档上直接这样就可以啊
<button id="agree-btn1" open-type="getPhoneNumber|agreePrivacyAuthorization" bindgetphonenumber="handleGetPhoneNumber" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意隐私协议并授权手机号</button>
代开发小程序也可以这样做吗
哈哈哈哈 牛逼