OneSignal 推送通知 ClickEvent 显示空值 Windows phone 8.1 C#
Posted
技术标签:
【中文标题】OneSignal 推送通知 ClickEvent 显示空值 Windows phone 8.1 C#【英文标题】:OneSignal Push Notification ClickEvent show empty values Windows phone 8.1 C# 【发布时间】:2017-08-24 15:12:52 【问题描述】:我正在为 windows phone 8.1 开发 One Signal Push Notifications。通知工作正常。但是当我点击通知时,消息显示空值。当应用程序打开时,事件中会显示消息。 如何让通知文本保存在通知屏幕中?
我的 App.Xaml.cs 函数代码在这里。
OnLaunched 事件:
OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e);
OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e, notificationOpened);
这里是notificationOpened函数代码:
private async void notificationOpened(string message, IDictionary<string, string> additionalData, bool isActive)
if (message != null && message != "")
DatabaseHelperClass Db_Helper = new DatabaseHelperClass();//Creating object for DatabaseHelperClass.cs from ViewModel/DatabaseHelperClass.cs
try
Db_Helper.Insert(new MessagesClass(message));
catch
MessageDialog messageDialog = new MessageDialog("There is an error while saving this details. Please try again later!");//Text should not be empty
await messageDialog.ShowAsync();
else
//Here I have check for empty value
settingsClass.SaveSetting("NotiClick", "MoveToMeldingen");
当应用程序处于活动状态时,我会收到消息,但是当应用程序处于后台并且通知托盘中收到通知时,单击此我会收到空消息字符串。 请帮助我摆脱这个问题。 谢谢!
【问题讨论】:
【参考方案1】:这是 Windows Phone 8.1 通知的一个限制,即消息正文不会传递给应用程序。问题是传递给OnLaunched
的LaunchActivatedEventArgs
不包含此值,因此OneSignal SDK 无法获取此值。您可以设置一个断点或打印出e.Arguments
以查看它 WP8.1 没有通过它。
但是,您可以通过将消息添加到附加数据以及数据参数仍传递给您的应用来解决此问题。
【讨论】:
是的,你是对的。当用户从通知栏打开通知时,SDK 没有收到消息。但附加数据和参数有其价值。所以我需要把我的消息更详细,键和值参数将返回我的结果。【参考方案2】:你首先需要在notificatonOpened方法中调试并检查它是否真的收到了消息。这可能是由于它在后台没有正确接收消息。
【讨论】:
当应用程序在后台时,此方法不会调用,而当用户点击通知栏中收到的通知时,然后通过此方法显示空值。 然后是库没有传递值的问题。一个原因可能是您的应用程序在后台终止。其他人需要一点代码验证以上是关于OneSignal 推送通知 ClickEvent 显示空值 Windows phone 8.1 C#的主要内容,如果未能解决你的问题,请参考以下文章