我正在创建一个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的实际应用。
预先感谢您的帮助! :)
答案 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上收到通知回调,但不显示通知。