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

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

【问题讨论】:

    标签: android push-notification onesignal


    【解决方案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 以防万一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多