功能说明
自动监听通知栏推送消息,返回消息标题内容接收时间包名
可以实现`拦截功能`,但是为了防止滥用此功能。插件暂未开通此功能,如果需要请联系我。
经实测试:
1、插件无法监听到短信的内容,短信只能获取到通知的titile,这个问题在下个版本修复。
2、华为mate20机型(华为其他机型暂未发现)闪退问题,其他主流机型没有发现这个问题,打包的时候各开发者把支持的cpu类型全部勾选或离线打包。
新版本 问题1、2已经修复 插件方法
方法名 返回值 说明
init() 无 初始化方法
readNotificationBar() 值布尔 是否获取通知栏权限 true已经获取 false未获取 1.0.2版本已改为同步
toSetting() 无 跳转到设置界面
getNotification() json对象 开始监听通知栏内容 回调方法可以获取到监听到的内容 只需要调用一次即可
isIgnoringBatteryOptimizations 值布尔 是否开启白名单:true已开启 false未开启
requestIgnoreBatteryOptimizations 无 去设置白名单
cancelAll() 无 清空通知栏消息(包括其他apk发送的消息)2.3版本增加
代码演示
- <template>
- <view>
- {{msg}}
- <view>
- <view v-for="(item, index) in list" :key="index">
- <text>监听到内容:{{item.content}}</text><br><text>监听到标题:{{item.title}}</text>
- <br /><hr />
- </view>
- </view>
- <button type="default" @click="init">初始化</button>
- <button type="default" @click="test">是否开启获取通知权限</button>
- <button type="default" @click="set">跳转到设置界面</button>
- <button type="default" @click="start">开始监听</button>
- <button type="default" @click="clear">清空列表记录</button>
- <button type="default" @click="cancelAll">清空所有通知栏消息</button>
- <button type="default" @click="isIgnoringBatteryOptimizations">是否设置白名单</button>
- <button type="default" @click="requestIgnoreBatteryOptimizations">去设置白名单</button>
- </view>
- </template>
- <script>
- const NoticeBarModule = uni.requireNativePlugin('lu-NoticeBarModule');
- export default {
- data() {
- return {
- msg: '收到的通知内容会展示在这里',
- list: []
- }
- },
- onLoad() {},
- methods: {
- init() {
- //初始化 <-- 需要初始化一下 然后调用一次start方法即可 多次调用也无所谓不影响。
- NoticeBarModule.init();
- },
- clear() {
- this.list = [];
- },
- test() {
- //var res = NoticeBarModule.readNotificationBar(e => {
- // this.msg = JSON.stringify(e)
- // uni.showToast({
- // title: JSON.stringify(e),
- // icon: 'none'
- // });
- //});
- //新版本改为同步
- //TODO: 是否开启获取通知栏内容权限已改成同步返回。 1.0.2版本
- let res = NoticeBarModule.readNotificationBar();
- if (res) {
- //开启
- uni.showToast({
- title: '开启',
- icon: 'none'
- });
- } else {
- //未开启
- uni.showToast({
- title: '未开启',
- icon: 'none'
- });
- }
- },
- set() {
- NoticeBarModule.toSetting();
- },
- cancelAll() {
- NoticeBarModule.cancelAll(); //无任何返回值
- },
- start() {
- let _this = this;
- NoticeBarModule.getNotification(e => { //<-- e 就是监听到的通知栏消息
- _this.list.push(e);
- console.log(JSON.stringify(e));
- uni.showToast({
- title: JSON.stringify(e),
- icon: 'none'
- });
- });
- },
- isIgnoringBatteryOptimizations() {
- let res = NoticeBarModule.isIgnoringBatteryOptimizations();
- if (res) {
- //开启
- uni.showToast({
- title: '已开启白名单',
- icon: 'none'
- });
- } else {
- //未开启
- uni.showToast({
- title: '未开启白名单',
- icon: 'none'
- });
- }
- },
- requestIgnoreBatteryOptimizations() {
- //申请加入白名单 没有任何回调
- NoticeBarModule.requestIgnoreBatteryOptimizations()
- }
- }
- }
- </script>
- <style>
- </style>
复制代码 使用本插件的成品项目:
插件下载
|