uni-app小程序登录功能需要提供可取消或拒绝的选项按钮,uni.getUserInfo这个可以用来解决么

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app小程序登录功能需要提供可取消或拒绝的选项按钮,uni.getUserInfo这个可以用来解决么

小程序审核的时候被拒绝,说小程序登录功能暂未符合规范要求,在登录环节,应当为用户提供可取消或拒绝的选项按钮,

后来我用改成加入 uni.getUserInfo, 获取权限之后再 login

uni.getUserInfo({  
  desc:'获取微信用户的昵称',  
  provider: 'weixin',  
  success(res) {  
      uni.login({  
        provider: 'weixin',  
      .........  
  },  
  fail: () => {  
    uni.showToast({  
      title: '授权已取消',  
      icon: 'error',  
      mask: true  
    })  
  },  
  complete(res) {  
    console.log(res);  
    uni.hideLoading();  
  }  
}

但是我测试的时候,发现点击按钮还是可以直接进入微信,就是不弹出授权的窗口。

后来我用了别人的手机来测,也不管用。

不知道为什么??


1 回复

在uni-app中实现小程序登录功能,并提供可取消或拒绝的选项按钮,uni.getUserInfo 并不能直接满足这一需求,因为 uni.getUserInfo 主要用于获取用户信息,并且在较新版本的微信小程序中,该方法已被废弃,取而代之的是使用 button 组件的 open-type="getUserInfo" 属性来引导用户授权。

为了实现登录功能并提供可取消或拒绝的选项,我们可以结合 button 组件和自定义模态框(弹窗)来实现。以下是一个示例代码,展示了如何实现这一功能:

<template>
  <view>
    <button open-type="getUserInfo" @getuserinfo="handleUserInfo" type="primary">微信用户一键登录</button>
    <modal v-if="showModal" title="登录提示" @confirm="confirmLogin" @cancel="cancelLogin">
      为了提供更好的服务,我们需要您授权微信信息,是否继续?
    </modal>
  </view>
</template>

<script>
export default {
  data() {
    return {
      showModal: false,
      userInfo: {}
    };
  },
  methods: {
    handleUserInfo(e) {
      if (e.detail.userInfo) {
        // 用户点击了允许授权按钮
        this.userInfo = e.detail.userInfo;
        // 显示模态框询问用户是否继续登录流程
        this.showModal = true;
      } else {
        // 用户点击了拒绝按钮
        console.log('用户拒绝了授权');
      }
    },
    confirmLogin() {
      // 用户点击了模态框的确定按钮,执行登录逻辑
      this.showModal = false;
      console.log('用户信息:', this.userInfo);
      // 在这里调用登录接口,比如发送到后端服务器进行验证
      // loginApi(this.userInfo).then(response => {
      //   // 登录成功处理
      // }).catch(error => {
      //   // 登录失败处理
      // });
    },
    cancelLogin() {
      // 用户点击了模态框的取消按钮
      this.showModal = false;
      console.log('用户取消了登录');
    }
  }
};
</script>

<style scoped>
/* 样式可根据需要自定义 */
</style>

在这个示例中,当用户点击登录按钮时,会触发 handleUserInfo 方法。如果用户允许授权,会显示一个模态框询问用户是否继续登录流程。用户可以选择确定(继续登录)或取消(放弃登录)。这样,就实现了在登录过程中提供可取消或拒绝的选项按钮。

注意,实际开发中可能还需要处理登录接口的调用、错误处理、状态管理等细节。此外,为了提升用户体验,可以进一步优化样式和交互逻辑。

回到顶部