Ba-Sms 是一款用于拦截实时短信的插件,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的项目
- 支持监听当前接收到的短信信息
- 支持过滤接收到的短信,默认过滤4~8位的验证码
- 支持自定义过滤条件(正则)
截图展示
使用方法
引用
在 script
中引入组件
const baSms = uni.requireNativePlugin('Ba-Sms')
示例
可在页面 script
中调用(示例参考,可根据自己业务和调用方法自行修改)
<script>
const baSms = uni.requireNativePlugin('Ba-Sms')
export default {
data() {
return {
filterAddress: "10086",
address: "10086",
content: '【某某应用】验证码:708563。尊敬的用户,您正在...,我们不会向您索要此验证码,切勿告知他人!',
msgList: []
}
},
methods: {
register() { //注册监听
baSms.register({
filterAddress: this.filterAddress, //需要过滤的短信地址,**注意**,如果是手机号,要以“+86”开头
//regex: "(\\d{4,8})",正则表达式,默认为匹配4-8位的数字验证码
}, res => {
console.log(res);
if (res.ok && res.result) {//监听短信接收,判断 res.result 有内容
this.msgList.push(res.address + ":" + res.content);
this.msgList.push("解析结果:" + res.result);
}
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
unregister() { //注销监听
baSms.unregister({}, res => {
console.log(res);
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
simulate() { //模拟短信,仅用于测试
baSms.simulate({
address: this.address,
content: this.content
}, res => {
console.log(res);
uni.showToast({
title: res.msg,
icon: "none",
duration: 3000
})
});
},
}
}
</script>
方法清单
名称 | 说明 |
register | 注册短信监听 |
unregister | 注销短信监听 |
simulate | 模拟短信,仅用于测试 |
register 方法参数
注册短信监听
属性名 | 类型 | 必填 | 默认值 | 说明 |
filterAddress | String | 建议填写 | ‘’ | 需要过滤的短信地址,'‘为监听所有短信;可只设置开头,如监听10086短信,可模糊写’100’,监听所有100开头的短信, 注意,如果是手机号,要以“+86”开头 |
regex | String | false | ‘’ | 正则表达式过滤短信内容,默认过滤4~8位数字验证码,如’(\d{4,8})’ |
监听接收短信的参数
判断 res.result 有内容,监听接收到的短信
属性名 | 类型 | 说明 |
address | String | 短信地址 |
content | String | 短信原始内容 |
result | String | 短信内容解析后,得到的结果,如验证码 |
simulate 方法参数
模拟短信,仅用于测试
属性名 | 类型 | 必填 | 默认值 | 说明 |
address | String | true | ‘’ | 短信地址 |
content | String | true | ‘’ | 短信内容 |