开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1772|回复: 2
收起左侧

[组件] uniapp监测手机通知栏 nvue组件

[复制链接]

结帖率:88% (43/49)
发表于 2021-9-28 10:17:36 | 显示全部楼层 |阅读模式   山东省烟台市
功能说明
自动监听通知栏推送消息,返回消息标题内容接收时间包名
可以实现`拦截功能`,但是为了防止滥用此功能。插件暂未开通此功能,如果需要请联系我。

经实测试:
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版本增加

代码演示
  1. <template>
  2.     <view>
  3.         {{msg}}
  4.         <view>
  5.             <view v-for="(item, index) in list" :key="index">
  6.               <text>监听到内容:{{item.content}}</text><br><text>监听到标题:{{item.title}}</text>
  7.               <br /><hr />
  8.             </view>
  9.           </view>
  10.         <button type="default" @click="init">初始化</button>
  11.         <button type="default" @click="test">是否开启获取通知权限</button>
  12.         <button type="default" @click="set">跳转到设置界面</button>
  13.         <button type="default" @click="start">开始监听</button>
  14.         <button type="default" @click="clear">清空列表记录</button>
  15.         <button type="default" @click="cancelAll">清空所有通知栏消息</button>
  16.         <button type="default" @click="isIgnoringBatteryOptimizations">是否设置白名单</button>
  17.         <button type="default" @click="requestIgnoreBatteryOptimizations">去设置白名单</button>
  18.     </view>
  19. </template>

  20. <script>
  21.     const NoticeBarModule = uni.requireNativePlugin('lu-NoticeBarModule');

  22.     export default {
  23.         data() {
  24.             return {
  25.                 msg: '收到的通知内容会展示在这里',
  26.                 list: []
  27.             }
  28.         },
  29.         onLoad() {},
  30.         methods: {
  31.             init() {
  32.                 //初始化 <-- 需要初始化一下 然后调用一次start方法即可  多次调用也无所谓不影响。
  33.                 NoticeBarModule.init();
  34.             },
  35.             clear() {
  36.                 this.list = [];
  37.             },
  38.             test() {
  39.                 //var res = NoticeBarModule.readNotificationBar(e => {
  40.                 //  this.msg = JSON.stringify(e)
  41.                 //  uni.showToast({
  42.                 //      title: JSON.stringify(e),
  43.                 //      icon: 'none'
  44.                 //  });
  45.                 //});

  46.                 //新版本改为同步
  47.                 //TODO: 是否开启获取通知栏内容权限已改成同步返回。 1.0.2版本
  48.                 let res = NoticeBarModule.readNotificationBar();
  49.                 if (res) {
  50.                     //开启
  51.                     uni.showToast({
  52.                         title: '开启',
  53.                         icon: 'none'
  54.                     });
  55.                 } else {
  56.                     //未开启
  57.                     uni.showToast({
  58.                         title: '未开启',
  59.                         icon: 'none'
  60.                     });
  61.                 }
  62.             },
  63.             set() {
  64.                 NoticeBarModule.toSetting();
  65.             },
  66.             cancelAll() {
  67.                 NoticeBarModule.cancelAll(); //无任何返回值
  68.             },
  69.             start() {
  70.                 let _this = this;
  71.                 NoticeBarModule.getNotification(e => { //<-- e 就是监听到的通知栏消息
  72.                     _this.list.push(e);
  73.                     console.log(JSON.stringify(e));
  74.                     uni.showToast({
  75.                         title: JSON.stringify(e),
  76.                         icon: 'none'
  77.                     });
  78.                 });
  79.             },
  80.             isIgnoringBatteryOptimizations() {
  81.                 let res = NoticeBarModule.isIgnoringBatteryOptimizations();
  82.                 if (res) {
  83.                     //开启
  84.                     uni.showToast({
  85.                         title: '已开启白名单',
  86.                         icon: 'none'
  87.                     });
  88.                 } else {
  89.                     //未开启
  90.                     uni.showToast({
  91.                         title: '未开启白名单',
  92.                         icon: 'none'
  93.                     });
  94.                 }
  95.             },
  96.             requestIgnoreBatteryOptimizations() {
  97.                 //申请加入白名单 没有任何回调
  98.                 NoticeBarModule.requestIgnoreBatteryOptimizations()
  99.             }

  100.         }
  101.     }
  102. </script>

  103. <style>
  104. </style>
复制代码
使用本插件的成品项目:
码支fuapp源码 - 监控通知栏
https://bbs.125.la/forum.php?mod=viewthread&tid=14698091
(出处: 精易论坛)

插件下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1好评 +1 精币 +3 收起 理由
冰点 + 1 + 3 支持开源~!感谢分享

查看全部评分

结帖率:25% (1/4)

签到天数: 8 天

发表于 2021-10-3 17:20:20 | 显示全部楼层   浙江省台州市
54353453567567567
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2021-9-30 18:07:26 | 显示全部楼层   广东省江门市
谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表