停止 OneSignal 通知以显示在状态栏中

Posted

技术标签:

【中文标题】停止 OneSignal 通知以显示在状态栏中【英文标题】:Stop OneSignal notification to display in status bar 【发布时间】:2016-06-30 08:54:00 【问题描述】:

我已实现 OneSignal 并成功向我的 android 应用发送通知,但我想根据推送通知中收到的其他数据丢弃一些通知。如何在状态栏中显示之前丢弃通知。

【问题讨论】:

【参考方案1】:

为此,请创建一个扩展 NotificationExtenderService 的类,

在这

import com.onesignal.OSNotificationPayload;
import com.onesignal.NotificationExtenderService;

public class NotificationExtenderBareBonesExample extends NotificationExtenderService 
   @Override
   protected boolean onNotificationProcessing(OSNotificationPayload notification) 
      // Read any properties you need from notification.
      // Return true if you want to keep a notification from displaying else return false if you dont want to display notification.
      return false;
   

当从面板发送通知时,选中背景数据复选框

并编辑您的清单文件以包含以下内容:-

<service
   android:name=".YOUR_CLASS_NAME"
   android:exported="false">
   <intent-filter>
      <action android:name="com.onesignal.NotificationExtender" />
   </intent-filter>
</service>

【讨论】:

我已经实现了这个类,返回 false 也会在状态栏上显示通知。 您使用的是哪个 sdk 版本? 我已经添加了这个并根据附加数据处理了我的通知,但是当由于附加数据中的错误参数或参数丢失而发生某些错误时,我想丢弃通知,但我的通知始终显示在状态栏中甚至应用程序中缺少一些额外的数据在后台出现异常。如果出现异常,我将返回 false。 如果使用 Rest Api 发送通知,则不要在 "contents":"" 中输入任何内容,如果通过面板发送,则不要在消息内容中输入任何内容 onNotificationProcessing 返回 true 以将通知计为已处理。那时就不会显示了。您不再需要设置 Background data 选项,因为这是针对较旧的未记录和已弃用的方法。建议使用最新的 2.5.0 SDK 以防万一。

以上是关于停止 OneSignal 通知以显示在状态栏中的主要内容,如果未能解决你的问题,请参考以下文章

Android 在没有可展开视图的情况下在状态栏中显示通知

OneSignal 通知在更改包名称后停止工作

FCM 推送通知在返回应用程序时打开,而不是在 iOS 的状态栏中显示

Blackberry - 如何在状态栏中使用通知图标

Android - 通知不会出现在状态栏中

当第二个被触摸时,android的状态栏中出现多个推送通知其他人消失