{
checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
}

- 发布:2023-02-09 14:13
- 更新:2023-02-09 14:23
- 阅读:520
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 19045.2486
HBuilderX类型: 正式
HBuilderX版本号: 3.7.0
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: HONOR 50 SE
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
预期结果:
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
实际结果:
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
{checkLogin() {
var _this = this;
uni.preLogin({
provider: 'univerify',
success() { //预登录成功
// 显示一键登录选项
_this.openLoginPopup();
},
fail(res) { // 预登录失败
// 不显示一键登录选项(或置灰)
// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
console.log(res.errCode)
console.log(res.errMsg)
}
})
},
openLoginPopup() {
var _this = this;
uni.login({
provider: 'univerify',
fullScreen: "true",
univerifyStyle: { // 自定义登录框样式
//参考`univerifyStyle 数据结构
"icon": {
"path": "../../static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"authButton": {
"normalColor": "#fe4d6a", // 授权按钮正常状态背景颜色 默认值:#3479f5
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”
"borderRadius": "24px" // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},
"privacyTerms": {
"defaultCheckBoxState": true, // 条款勾选框初始状态 默认值: true
"uncheckedImage": "", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
"checkedImage": "", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
"checkBoxSize": 12, // 可选 条款勾选框大小,仅android支持
"textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB
"termsColor": "#fe4d6a", // 协议文字颜色 默认值: #5496E3
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"privacyItems": [ // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
{
"url": "https://", // 点击跳转的协议详情页面
"title": "用户协议" // 协议名称
},
{
"url": "https://", // 点击跳转的协议详情页面
"title": "隐私协议" // 协议名称
}
]
},
},
success(res) { // 登录成功
_this.form.openid = res.authResult.openid;
_this.form.access_token = res.authResult.access_token;
_this.loginPhone();
},
fail(res) { // 登录失败
console.log(res);
}
})
},
bug描述:
uni使用Uni.login一键手机登录,关闭弹窗后会一直重复加载APP,导致登录弹窗重复弹出

1***@qq.com (作者)
页面源码
-
-
1***@qq.com (作者)
回复 DCloud_Android_YJC: 我已经解决了,但是这个问题是有的,关闭弹窗后,当前页面会重新进入渲染onload等方法
2023-02-27 15:04
1***@qq.com (作者)
邀请谁啊。。
2023-02-09 14:17
亦春亦秋
回复 1***@qq.com: 帮你邀请过了,剩下的就是等了
2023-02-09 14:21