更新记录
1.0.0(2025-10-03)
专为 uniapp 开发的登录插件,涵盖手机号验证码弹窗与二维码登录两大核心功能。手机号输入后点击即发验证码,弹窗交互流畅;扫码登录功能适配常见场景,提升用户体验。插件兼容性强,集成步骤简单,帮助开发者高效实现登录功能,减少开发成本。
平台兼容性
uni-app(4.04)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
- |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
其他
zmt-login介绍
手机号码+验证码+二维码扫码登录,纯uniapp开发,支持vue3,直接调用,无需引入和安装。
调用方式
<zmt-login @close="updateLoginShow" :show="loginShow"></zmt-login>
参数说明
参数 |
类型 |
默认值 |
说明 |
show |
bool |
false |
是否显示弹窗,false:不显示,true:显示 |
qrcode |
string |
https://mp-ce722b81-fb70-438b-90d2-97b9b3a6240f.cdn.bspapp.com/images/weixinerweima.jpg |
登录二维码 |
方法说明
方法 |
默认值 |
说明 |
@close |
null |
关闭弹窗时的回调 |
特殊说明
登录弹窗牵扯到登录方面的逻辑,现说明如下:
发送验证码逻辑
、、、javascript
/**
* 发送手机验证码
*/
sendVerificationCode() {
// 验证手机号格式
if (!this.isValidPhoneNumber(this.phoneNumber)) {
this.errorMessage = '请输入正确手机号码';
this.focusField = 'phoneNumber';
return;
}
this.errorMessage = '';
this.focusField = null;
// 显示加载中
uni.showLoading({ title: '发送中···' });
// 生成随机验证码
const code = parseInt(Math.random() * 999999);
console.log('code',code);
this.generatedCode = code;
// 调用云函数发送验证码
loginService.sendSms(this.phoneNumber, code)
.then(() => {
uni.hideLoading();
this.startCountdown();
})
.catch(() => {
uni.hideLoading();
uni.showToast({
title: '发送过于频繁,请稍后再试!',
duration: 2000,
icon: 'none'
});
});
}
发送验证码云函数说明
、、、javascript
/**
* 发送手机验证码
* @param {string} tel 要发送的手机号码
* @returns {sting} 发送的随机验证码
*/
async sendSms(tel,code) {
// 参数校验,如无参数则不需要
if (!tel) {
return {
errCode: 'PARAM_IS_NULL',
errMsg: '参数不能为空'
}
}
// 业务逻辑
const res = await uniCloud.sendSms({
appid: '__UNI__0CFD2F7',
phone: tel,
smsKey:'976dce0a3dadb0c58fa62de*****',
smsSecret:'ec734e60644e2fb7df6f******',
templateId: '1869**', // 请替换为自己申请的模板id
data: {
code: code,
expMinute: '3',
}
})
// 返回结果
return {
code:200,
message:'发送成功',
result:res
}
}