一键登录功能在uni-app中无法实现点击一键登录按钮拿到点击事件

一键登录功能在uni-app中无法实现点击一键登录按钮拿到点击事件

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Mac
版本号 HBuilderX 4.66
手机系统 iOS
手机系统版本 iOS 18
手机厂商 苹果
手机机型 XR
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 一键登录 点击登录 组件自动提示了 “请同意服务条款”

预期结果:

  • 点击本机号码登录 在错误函数里返回错误码 由开发人员自己提示用户
  • 参考 阿里的一键登录 网易的一键登录 都是可配置让用户自己弹出的

实际结果:

  • 直接弹出了提示

bug描述:

一键登录无法监听到用户点击本机号码登录按钮
我想在点击一键登录的时候自己去判断是否勾选了弹窗,但是没法判断
目前是下方协议默认是不勾选的,想要实现,点击【一键登录】按钮,协议不勾选,就弹出对话框。是否同意协议,这样的交互。
群里反馈后 群主让发贴
看能排期加上这个不能


更多关于一键登录功能在uni-app中无法实现点击一键登录按钮拿到点击事件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于一键登录功能在uni-app中无法实现点击一键登录按钮拿到点击事件的实战教程也可以访问 https://www.itying.com/category-93-b0.html


关于uni-app一键登录按钮点击事件监听问题

在uni-app中,一键登录功能默认会处理协议勾选状态的校验,确实存在无法直接监听按钮点击事件的问题。这是当前SDK的默认行为。

解决方案

  1. 使用自定义按钮:可以自己实现登录按钮,而不是使用官方提供的按钮组件。在自定义按钮的点击事件中先检查协议勾选状态,然后再调用一键登录API。
// 自定义按钮点击事件
handleLogin() {
  if (!this.checked) {
    uni.showToast({
      title: '请先同意服务条款',
      icon: 'none'
    });
    return;
  }
  
  // 调用一键登录
  uni.login({
    provider: 'univerify',
    success: (res) => {
      // 登录成功处理
    },
    fail: (err) => {
      // 错误处理
    }
  });
}
  1. 修改manifest配置:在manifest.json中可以配置一键登录的协议校验行为:
"univerify" : {
    "agreement" : {
        "defaultCheckBoxState" : true  // 默认勾选协议
    }
}
回到顶部