1***@163.com
1***@163.com
  • 发布:2024-11-15 09:51
  • 更新:2024-11-15 09:57
  • 阅读:31

【报Bug】一键登录失败后,按钮一直转圈,不会停止

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 4.29

手机系统: Android

手机系统版本号: Android 15

手机厂商: 小米

手机机型: 小米

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

univerifyManager.login({
univerifyStyle: { // 自定义登录框样式
"fullScreen": true, // 是否全屏显示,默认值: false
"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
"backgroundImage": "", // 全屏显示的背景图片,默认值:"" (仅支持本地图片,只有全屏显示时支持)
"icon": {
"path": "static/logo.png", // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
"width": "60px", //图标宽度 默认值:60px
"height": "60px" //图标高度 默认值:60px
},
// "closeIcon": {
// "path": "static/logo.png", // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
// "width": "60px", //图标宽度 默认值:60px (HBuilderX 4.0支持)
// "height": "60px" //图标高度 默认值:60px (HBuilderX 4.0支持)
// },
"phoneNum": {
"color": "#202020" // 手机号文字颜色 默认值:#202020
},
"slogan": {
"color": "#BBBBBB" // slogan 字体颜色 默认值:#BBBBBB
},
"authButton": {
"normalColor": "#3479f5", // 授权按钮正常状态背景颜色 默认值:#3479f5
"highlightColor": "#2861c5", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)
"disabledColor": "#73aaf5", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"otherLoginButton": {
"visible": true, // 是否显示其他登录按钮,默认值:true
"normalColor": "", // 其他登录按钮正常状态背景颜色 默认值:透明
"highlightColor": "", // 其他登录按钮按下状态背景颜色 默认值:透明
"textColor": "#656565", // 其他登录按钮文字颜色 默认值:#656565
"title": "其他登录方式", // 其他登录方式按钮文字 默认值:“其他登录方式”
"borderColor": "", //边框颜色 默认值:透明(仅iOS支持)
"borderRadius": "0px" // 其他登录按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"isCenterHint": false, //未勾选服务条款时点击登录按钮的提示是否居中显示 默认值: false (3.7.13+ 版本支持)
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#5496E3", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户服务协议" // 协议名称
}
]
},
"buttons": { // 自定义页面下方按钮仅全屏模式生效(3.1.14+ 版本支持)
"iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px
"list": [{
"provider": "apple",
"iconPath": "/static/image/iosLogo.png" // 图标路径仅支持本地图片
},

                            {  
                                "provider": "weixin",  
                                "iconPath": "/static/image/wxLogo.png" // 图标路径仅支持本地图片  
                            },  

                        ]  

                    }  
                },  
                success(res) {  
                    that.openid = res.authResult.openid;  
                    that.access_token = res.authResult.access_token;  
                    uniCloud.callFunction({  
                        // name 是你的云函数名称,如果你的的云空间有多个app需要开通一键登录功能,可以通过名称区分使用的云函数  
                        name: "getPhoneNumber",  
                        data: {  
                            openid: that.openid,  
                            access_token: that.access_token  
                        }  
                    }).then(res1 => {  
                        console.log("获取成功", res1);  
                        // console.log(res); // res 内容包含手机号码  
                        // 获取用户的手机号  
                        that.phoneNumber = res1.result.res.phoneNumber;  
                        uni.closeAuthView()  
                        /**到这已经拿到手机号了,后续可以使用获取到的手机号调用后端同事给的手机号码登录接口*/  

                    }).catch((err) => {  
                        uni.showToast({  
                            title: '登录失败,请重新一键登录',  
                            icon: "none",  
                            duration:1000  
                        })  
                        // 执行失败  
                        setTimeout(() => {  
                            uni.closeAuthView() //关闭一键登录弹出窗口  
                        }, 1000)  

                        console.log('errs', err)  
                    })  

                },  
                fail(err) { // 登录失败  
                    uni.showToast({  
                        title: res.errMsg || err.metadata?.resultDesc,  
                        icon: "none"  
                    })  
                    setTimeout(() => {  
                        uni.closeAuthView() //关闭一键登录弹出窗口  
                    }, 500)  
                }  
            })

操作步骤:

调用一键登录弹框,如果云函数报错,或者univerifyManager.login 失败回调函数之后 一键登录 不可点击

预期结果:

失败之后可以让一键登录继续点,而不是要关闭页面重新调用

实际结果:

一键登录失败后不可以重新点击,必须关弹框在进

bug描述:

APP一键登录的时候如果没开网或者其他情况导致一键登录失败,一键登录按钮会一直在转圈圈,不可重新点击

2024-11-15 09:51 负责人:无 分享
已邀请:

要回复问题请先登录注册