uniapp 监听通知栏消息插件(支持白名单、黑名单、过滤) Ba-NotifyListener

简介(下载地址)

Ba-NotifyListener 是一款实时监听通知栏消息的uniapp插件。支持白名单、黑名单;支持监听消息移除;支持自定义过滤条件(如短信验证码)等。

  • 支持监听所有通知栏消息(包含id、ticker、标题、内容、时间等等内容)
  • 支持白名单(需要监听的应用,设置后其他应用都不监听)
  • 支持黑名单(不想监听的应用,不设置白名单时有效)
  • 支持自定义内容过滤条件(如过滤短信验证码,默认过滤4~8位数字)

相关插件

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)

应用未读角标插件 Ba-Shortcut-Badge (文档)

短信监听(验证码) Ba-Sms(文档)

截图展示

uniapp 监听通知栏消息插件(支持白名单、黑名单、过滤) Ba-NotifyListener_第1张图片

使用方法

script 中引入组件

	const listener = uni.requireNativePlugin('Ba-NotifyListener');

script 中调用(示例参考,可根据自己业务和调用方法自行修改)

	const listener = uni.requireNativePlugin('Ba-NotifyListener'); //本插件
	const notify = uni.requireNativePlugin('Ba-Notify'); //应用通知插件(https://ext.dcloud.net.cn/plugin?id=9231)
	export default {
		data() {
			return {
				whiteList: [ //白名单
					'com.ba.UniTemp',
					'com.tencent.mobileqq', //qq
					'com.tencent.mm', //微信
					'com.android.mms', //短信
					'com.android.incallui', //来电
				],
				blackList: [ //黑名单
					'com.ba.UniTemp',
				],
				msgList: []
			}
		},
		methods: {
			setListener(flag = 0) { //设置监听
				let params = {};
				if (flag == 1) {
					params = {
						whiteList: this.whiteList,
					    //regex: "(\\d{4,8})",正则表达式,默认为匹配4-8位的数字
					};
				} else if (flag == 2) {
					params = {
						blackList: this.blackList,
					    //regex: "(\\d{4,8})",正则表达式,默认为匹配4-8位的数字
					};
				}
				listener.setListener(params, res => {
					console.log(res);
					if (res.ok && res.data) {
						if (res.data.listenType == 1) {
							this.msgList.push('收到消息:');
							this.msgList.push(JSON.stringify(res.data));
							if (res.data.result)
								this.msgList.push("解析结果:" + res.data.result);

						}
						if (res.data.listenType == 2) {
							this.msgList.push('移除消息:');
							this.msgList.push(JSON.stringify(res.data));
						}
					}
					uni.showToast({
						title: res.msg,
						icon: "none",
						duration: 3000
					})
				});
			},
			isHasPermission() { //是否开启获取通知权限
				listener.isHasPermission(res => {
					console.log(res);
					uni.showToast({
						title: res.ok ? (res.data && res.data.isHasPermission ? '已开启' : '未开启') : res.msg,
						icon: "none",
						duration: 3000
					})
				});
			},
			openPermission() { //跳转到通知权限设置界面(仅判断未打开时跳转)
				listener.openPermission(res => {
					let msg = res.msg;
					if (res.data && res.data.isHasPermission) {
						msg = res.data.isHasPermission ? "权限打开" : "权限关闭";
					}
					uni.showToast({
						title: msg,
						icon: "none",
						duration: 3000
					})
				});
			},
			setPermission() { //跳转到通知权限设置界面(开不开都跳转)
				listener.setPermission(res => {
					console.log(res);
					let msg = res.msg;
					if (res.data && res.data.isHasPermission) {
						msg = res.data.isHasPermission ? "权限打开" : "权限关闭";
					}
					uni.showToast({
						title: msg,
						icon: "none",
						duration: 3000
					})
				});
			},
			sendNotify() {//用于测试通知
				notify.show({
						channelID: '0',
						channelName: '普通通知',
						ID: 1,
						notifyType: 0,
						ticker: 'Ticker',
						title: 'title',
						content: "【某某应用】验证码:708563。尊敬的用户,您正在...,我们不会向您索要此验证码,切勿告知他人!",
						extend: "附加参数",
					},
					(res) => {
						console.log(res)
					});
			}
		}
	}		

api 列表

方法名 说明
setListener 设置监听
isHasPermission 是否开启获取通知权限
openPermission 跳转到通知权限设置界面(仅判断未打开时跳转)
setPermission 跳转到通知权限设置界面(开不开都跳转)

setListener 方法参数

设置监听

属性名 类型 必填 默认值 说明
whiteList Array false ‘’ 白名单
blackList Array false ‘’ 黑名单
regex String false ‘’ 正则表达式过滤短信内容,默认过滤4~8位数字验证码,如’(\d{4,8})’

监听通知的参数

判断 res.data 有内容(参照使用方法),监听接收到的通知

属性名 类型 说明
listenType Number 1 接收到通知 2 移除通知
packageName String 应用包名
id Number 通知 id
postTime long 时间(毫秒)
postTimeS String 时间(yyyy-MM-dd HH:mm:ss 格式)
tickerText String 通知 ticker,在顶部状态栏中的提示信息
title String 通知标题
content String 通知内容
result String 通知内容根据过滤规则,解析后的结果,如短信验证码
isOngoing Boolean 通知是否持续显示,侧滑不能删除
isClearable Boolean 点击通知,是否自动消失

isHasPermission、openPermission、setPermission方法 返回参数

判断 res.data 有内容(参照使用方法)

属性名 类型 说明
isHasPermission Boolean 是否开启获取通知权限

系列插件

图片选择插件 Ba-MediaPicker (文档)

图片编辑插件 Ba-ImageEditor (文档)

文件选择插件 Ba-FilePicker (文档)

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)

应用未读角标插件 Ba-Shortcut-Badge (文档)

应用开机自启插件 Ba-Autoboot(文档)

扫码原生插件(毫秒级、支持多码)Ba-Scanner-G(文档)

扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner(文档)

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar(文档)

原生sqlite本地数据库管理 Ba-Sqlite(文档)

安卓保活插件(采用多种主流技术) Ba-KeepAlive(文档)

安卓快捷方式(桌面长按app图标) Ba-Shortcut(文档)

自定义图片水印(任意位置) Ba-Watermark(文档)

最接近微信的图片压缩插件 Ba-ImageCompressor(文档)

视频压缩、视频剪辑插件 Ba-VideoCompressor(文档)

动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon(文档)

原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast(文档)

图片涂鸦、画笔 Ba-ImagePaint(文档)

pdf阅读(手势缩放、显示页数) Ba-Pdf(文档)

声音提示、震动提示、语音播报 Ba-Beep(文档)

websocket原生服务(自动重连、心跳检测) Ba-Websocket(文档)

短信监听(验证码) Ba-Sms(文档)

智能安装(自动升级) Ba-SmartUpgrade(文档)

监听系统广播、自定义广播 Ba-Broadcast(文档)

监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener(文档)

全局置灰、哀悼置灰(可动态、同时支持nvue、vue) Ba-Gray(文档)

获取设备唯一标识(OAID、AAID、IMEI等) Ba-IdCode(文档)

你可能感兴趣的:(uni-app,uni-app,监听通知,短信验证码,原生插件,智能穿戴)