官方提供的获取通知消息只能获取自己的应用的通知消息,
这里需要监听其它应该的通知消息来做对应的通知,
由于本人对native.js 不太懂,
希望大神来看看可以通过native.js 来实现这个功能不?
主要用到 安卓的 NotificationListenerService 服务的2个回掉函数,来实现
安卓大概是这么写的
package com.xingshulin.xsltestcontroller;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.os.Bundle;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;
@SuppressLint("NewApi")
public class NotificationMonitorService extends NotificationListenerService {
// 在收到消息时触发
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
// TODO Auto-generated method stub
Bundle extras = sbn.getNotification().extras;
// 获取接收消息APP的包名
String notificationPkg = sbn.getPackageName();
// 获取接收消息的抬头
String notificationTitle = extras.getString(Notification.EXTRA_TITLE);
// 获取接收消息的内容
String notificationText = extras.getString(Notification.EXTRA_TEXT);
Log.i("XSL_Test", "Notification posted " + notificationTitle + " & " + notificationText);
}
// 在删除消息时触发
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
// TODO Auto-generated method stub
Bundle extras = sbn.getNotification().extras;
// 获取接收消息APP的包名
String notificationPkg = sbn.getPackageName();
// 获取接收消息的抬头
String notificationTitle = extras.getString(Notification.EXTRA_TITLE);
// 获取接收消息的内容
String notificationText = extras.getString(Notification.EXTRA_TEXT);
Log.i("XSL_Test", "Notification removed " + notificationTitle + " & " + notificationText);
}
}
不知道 Native.js该如何来实现
21 个回复
我爱汪 (作者)
自己先顶一下,求大神来看开年看,解读哈
我爱汪 (作者)
自己顶起来
我爱汪 (作者)
顶起来,求大神提点
我爱汪 (作者)
各位大哥,这个有可能实现不,没有啊
我爱汪 (作者)
自己坚持顶一下!
我爱汪 (作者)
自己顶一下
我爱汪 (作者)
求大神解惑
W小姐
能不能实现不知道,但是让别人帮你写代码感觉不太现实
我爱汪 (作者)
谢谢回答,其实主要不是别人写代码,主要看能不能实现!
2018-05-22 10:43
uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)
这里大多数是前端开发人员,对原生开发并不懂
我爱汪 (作者)
自己顶一下
邱水仙
兄弟,你搞定了吗?我是卡在了申请通知使用权这一步了,能调到设置通知使用权的页面,但是这个页面里居然没有我的app
我爱汪 (作者)
没有搞定,我换平台了,
2018-07-31 20:51
xiaoqianYang
请问你解决了吗,可以获取全部消息了吗
2018-11-12 15:08
邱水仙
回复 xiaoqianYang:已解决,可以获取的
2018-11-18 15:44
3***@qq.com
兄弟我实现跳转了 但是监听不到
2021-04-29 16:43
2***@qq.com
亲,你换到哪个平台?换系统平台还是开发平台
我爱汪 (作者)
换的cordova
2018-08-07 10:03
我爱汪 (作者)
但是这玩意不太好用,开发速度没有dcloud快
2018-08-07 10:04
2***@qq.com
dcloud 这玩儿好像没法添加NotificationListenerService权限,搞了好多天了 ,能把你用cordova 实现的代码给我学习一下吗,谢谢
2018-08-07 10:11
demoneyes
回复 我爱汪:我开始也想用dcloud的native.js来实现NotificationListenerService,尝试写了些代码后,发现根本不行,没办法,走原生了。
2018-08-19 04:25
晓黑
求在cordova的实现代码
3***@qq.com
我也挺需要这个功能的
3***@qq.com
同求啊。。。。。
xiaoqianYang
我也需要这个方法
stuart_1
兄弟你cordova里怎么解决的,我网上找了个别人写的插件(NotificationListener-cordova)监听好像诶效果呀
https://github.com/coconauts/NotificationListener-cordova/issues
不知道你用的啥,方便说下吗
1***@qq.com - php,app,phpx
var SuppressLint=plus.android.importClass("android.annotation.SuppressLint");
var Notification=plus.android.importClass("android.app.Notification");
var Bundle=plus.android.importClass("android.os.Bundle");
////const NotificationListenerService=plus.android.importClass("android.service.notification.NotificationListenerService");
var StatusBarNotification=plus.android.importClass("android.service.notification.StatusBarNotification");
var Log=plus.android.importClass("android.util.Log");
var main = plus.android.runtimeMainActivity();
var filter= new IntentFilter("android.intent.action.SCANRESULT");
var onNotificationPosted = plus.android.implements( "android.service.notification.NotificationListenerService", {
"onNotificationPosted":function(StatusBarNotification){
console.log('onNotificationPosted成功2');
//console.log(typeof(notice)); //输出
}
} );
main.registerReceiver(onNotificationPosted, filter);
//不清楚怎么写的 这么写好像不行
1***@qq.com
用uniapp写在app.vue的onLaunch中 支付宝支付通知时会有错误提示
2019-10-03 15:27
1***@qq.com
求高手指点
2019-10-03 15:27
1***@qq.com
精简下以后再来搞
2019-10-03 15:45
f***@qq.com
我也碰上了这个需求,当应用在后台时需要获取通知栏信息。
可以准确的说,用Native.js实现不了。因为NotificationListenerService在安卓中需要写一个类去集成,然后在AndroidManifest.xml进行静态注册,这个Service无法动态注册。
必须用离线打包自己做集成才能解决这个问题。
3***@qq.com
也谢监听事件了 但是监听不到
3***@qq.com
https://ask.dcloud.net.cn/question/122316