Ba-Sms 是一款用于拦截实时短信的插件,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的项目

  • 支持监听当前接收到的短信信息
  • 支持过滤接收到的短信,默认过滤4~8位的验证码
  • 支持自定义过滤条件(正则)

截图展示

android监听读取短信验证码 手机短信监听工具_短信

使用方法

引用

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

‘’

短信内容