Xamarin 收到触发操作的推送消息,没有通知

Xamarin receive a push message that trigger action, without notification

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

我第一次测试 OneSignal 是这样的:

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

收到 HandleNotificationReceived(),我可以使用收到的文本来触发我自己的功能。但我无法停止显示通知。这可能吗?

在这种情况下,一个信号可能是 "special",而不是处理这种情况,但我不受此约束。

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

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

想了想,一个间隔触发的告警可以解决,但是https://developer.android.com/training/scheduling/alarms根本不推荐。使用 syncadapter 是他们的解决方案,但我还没有找到任何好的例子来展示它对 Xamarin 的影响。

在此先感谢您的帮助! :)

您可以在不使用 OneSignal 显示通知的情况下触发收到通知的操作。

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

将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 上收到通知回调,而不显示通知。