来自后台的Android本地通知没有标题
Posted
技术标签:
【中文标题】来自后台的Android本地通知没有标题【英文标题】:Android Local notifications from background don't have a title 【发布时间】:2014-06-25 13:41:03 【问题描述】:在 Ionic 项目中使用 this plugin 我能够在 GCM 推送到达时获得本地通知(使用 ngCordova 和适当的插件)。
代码流程有点像这样:
在抽象应用控制器的范围内,pushNotification 设置有一个引用全局 onNotification
函数的 ecb(在角度范围之外),并添加了一个 localNotification。
在角度范围内,声明了一个 onclick 处理程序以将用户引导到正确的视图。
问题在于,当应用不在前台时,可以观察到以下不需要的行为:
不显示通知标题(即使是硬编码) 未播放所需的声音(设备仅振动) 当应用程序进入前台时,不会触发 onclick 通知。我的通知代码如下所示:
window.plugin.notification.local.add(
message: e.payload.message,
title: e.payload.activity.name,
sound: 'android.resource://' + package_name + '/raw/bounce',
json: JSON.stringify(e.payload),
autoCancel: true,
);
关于发生了什么的任何线索?
FIXED:事实证明,当应用程序处于后台并且推送通知变成本地通知时,事件回调永远不会被调用 - 我忽略了一个功能。谢谢大家的时间和麻烦:/
【问题讨论】:
您的代码 sn-p 让我猜您没有尝试为 title 属性使用固定字符串。你确定e.payload.activity.name
有价值吗?
是的,我确信(99%)它有价值;是的,我确实尝试使用硬编码值 - 当应用程序不在前台时不显示。
与此有任何关系:github.com/katzer/cordova-plugin-local-notifications/issues/42 ?
@Slartibartfast 读起来很长;但那里可能有一些有趣的东西......谢谢指出这一点!
【参考方案1】:
试试这个,
public void notifyUser()
NotificationManager notificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(MyActivity.this, SomeActivity.class); //use the flag FLAG_UPDATE_CURRENT to override any notification already there PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); Notification notification = new Notification(R.drawable.ic_launcher, "Some Text", System.currentTimeMillis()); notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND; notification.setLatestEventInfo(this, "This is a notification Title", "Notification Text", contentIntent); //10 is a random number I chose to act as the id for this notification notificationManager.notify(10, notification);
【讨论】:
在我的 cordova/ionic 项目中我应该把这段 sn-p 代码放在哪里?以上是关于来自后台的Android本地通知没有标题的主要内容,如果未能解决你的问题,请参考以下文章