更新记录

1.1.0(2026-04-03)

  • 新增 isPosted 字段,区分通知新增和通知移除事件
  • 新增 removeNotificationCallback() 方法,支持移除回调防止内存泄漏
  • 优化 checkPermission 权限检查,使用 ComponentName 精确匹配包名
  • 优化 onNotificationRemoved 实现,通知移除时同样触发回调
  • 提取公共方法 buildNotificationData 减少重复代码

1.0.0(2026-02-04)

基于UTS开发的Android通知栏消息监听插件,支持实时拦截并获取微信、QQ等第三方App的通知栏消息,包含包名、标题、正文及时间戳,支持权限自动检测与引导开启。


平台兼容性

uni-app(4.51)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x(4.51)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × × ×

jwt-tzl 通知栏监听插件

简介

jwt-tzl 是一款基于 uniapp UTS 开发的 Android 通知栏消息监听插件。它可以实时拦截系统中各个 App(如微信、QQ 等)推送到通知栏的消息,并获取消息的包名、标题、内容及时间。同时支持监听通知被移除事件。

功能特性

  • 实时监听:实时获取通知栏新增和移除的消息。
  • 权限管理:内置通知使用权检查及一键跳转系统设置页申请权限。
  • 数据全面:提供发件 App 包名、通知标题、通知正文、时间戳及事件类型(新增/移除)。
  • 生命周期管理:支持注册和移除回调,避免内存泄漏。
  • UTS 实现:高性能,无缝对接 uniapp 业务层。

平台支持

  • Android 5.0 (API 21) 及以上系统。

快速上手

1. 引入插件

在需要监听通知的页面中引入相关 API:

import {
    checkPermission,
    requestPermission,
    onSetNotificationCallback,
    removeNotificationCallback
} from '@/uni_modules/jwt-tzl';

2. 初始化监听

建议在 onLoad 中设置回调,onShow 中刷新权限状态,onUnload 中移除回调:

export default {
    data() {
        return {
            hasPermission: false,
            logs: []
        }
    },
    onLoad() {
        this.hasPermission = checkPermission();
        onSetNotificationCallback((data) => {
            console.log(data.isPosted ? '收到通知:' : '通知移除:', data);
            this.logs.unshift({
                time: new Date(data.when).toLocaleTimeString(),
                packageName: data.packageName,
                title: data.title,
                text: data.text,
                isPosted: data.isPosted
            });
        });
    },
    onShow() {
        this.hasPermission = checkPermission();
    },
    onUnload() {
        removeNotificationCallback();
    },
    methods: {
        startService() {
            const hasPermission = checkPermission();
            if (!hasPermission) {
                uni.showModal({
                    title: '权限申请',
                    content: '监听通知需要授予"通知使用权",请在设置页中勾选本应用',
                    confirmText: '去设置',
                    success: (res) => {
                        if (res.confirm) {
                            requestPermission();
                        }
                    }
                });
            }
        }
    }
}

API 说明

onSetNotificationCallback(callback)

设置通知监听的回调函数。当有新通知到达或通知被移除时都会触发。

  • callback: (data: NotificationData) => void
  • NotificationData 属性说明: 属性名 类型 说明
    packageName string 发送通知的应用包名 (如: com.tencent.mm)
    title string 通知标题
    text string 通知正文内容
    when number 通知产生的时间戳 (毫秒)
    isPosted boolean 事件类型:true 表示收到新通知,false 表示通知被移除

removeNotificationCallback()

移除已注册的通知回调,释放资源。建议在页面 onUnload 时调用。

checkPermission()

检查当前应用是否已获得"通知使用权"。

  • 返回值: boolean (true: 已获得, false: 未获得)

requestPermission()

跳转到 Android 系统设置中的"通知使用权"页面,引导用户手动开启权限。

注意事项

  1. 必须手动开启权限:由于 Android 系统安全机制,通知监听权限必须由用户手动在系统设置中授予。
  2. 自定义基座:使用 UTS 插件必须进行"自定义基座"打包后才能运行调试。
  3. 白名单配置:在 manifest.json 中已自动配置了 BIND_NOTIFICATION_LISTENER_SERVICE 权限,请勿删除。
  4. 后台运行:建议配合原生保活或开启应用自启动权限,以确保服务在后台稳定运行。
  5. 回调清理:页面销毁时务必调用 removeNotificationCallback() 移除回调,防止内存泄漏。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

BIND_NOTIFICATION_LISTENER_SERVICE

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。