Xamarin会收到一则推送消息,该消息会触发操作,而不会发出通知

时间:2018-08-11 10:41:41

标签: android firebase xamarin onesignal android-syncadapter

我正在创建一个Xamarin(android)应用程序,我想接收推送消息并触发该应用程序中的更新,而不显示通知。

我首先像这样测试OneSignal:

            OneSignal.Current.StartInit("xxx")
            .HandleNotificationReceived(HandleNotificationReceived)
            .EndInit();

已接收到HandleNotificationReceived(),并且我可以使用接收到的文本来触发我自己的函数。但是我无法停止显示通知。有可能吗?

在这种情况下,onesignal可能是“特殊的”,不是要处理这种情况,但我不受此约束。

使用Xamarin.Firebase.Messaging是否可以解决(遵循本指南:https://blog.xamarin.com/implementing-push-notifications-android-apps/)?

我也无法摆脱那里的通知。

在考虑了替代方案之后,以一定间隔触发警报可以解决该问题,但是https://developer.android.com/training/scheduling/alarms完全不建议这样做。使用syncadapter是他们的解决方案,但我还没有找到任何很好的例子来说明Xamarin的实际应用。

预先感谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

您可以触发收到通知的操作,而无需使用OneSignal显示通知。

在您的OneSignal通知处理程序类中:

将Infocus显示值设置为OSInFocusDisplayOption.None

.InFocusDisplaying(OSInFocusDisplayOption.None)

检查我的代码以供参考:

public void InitializeOneSignalService()
        {
            OneSignal.Current.SetLogLevel(LOG_LEVEL.NONE, LOG_LEVEL.NONE);
            SetRequiresConsent(false);

            OneSignal.Current.StartInit("Your OneSignal Key").Settings(new Dictionary<string, bool>() {})
            .InFocusDisplaying(OSInFocusDisplayOption.None) //This line will stop displaying notification

              .HandleNotificationOpened((result) =>
              {

              })
              .HandleNotificationReceived((notification) =>
              {

              })
              .EndInit();

        } 

现在从OneSignal发送通知,您将在.HandleNotificationReceived上收到通知回调,但不显示通知。