OneSignal 推送通知 ClickEvent 显示空值 Windows Phone 8.1 C#



我正在为 Windows Phone 8.1 开发一个信号推送通知。通知工作正常。但是当我单击通知时,消息显示空值。当应用程序打开时,消息显示在事件中。如何获取要保存在通知屏幕中的通知文本?

我的应用程序.Xaml.cs函数代码在这里。

启动活动:

 OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e);
 OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e, 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");

        }
当应用程序

处于活动状态时,我会收到消息,但是当应用程序在后台并且通知托盘中收到通知时,单击此消息,我得到空消息字符串。请帮助我摆脱这个问题。谢谢!

这是 Windows Phone 8.1 通知的一个限制,其中消息正文不会传递到应用。问题是传递给OnLaunchedLaunchActivatedEventArgs不包含此值,因此 OneSignal SDK 无法获取此值。您可以设置断点或打印出e.Arguments以查看WP8.1是否未传递此断点。

但是,您可以通过将消息添加到"其他数据"以及数据参数仍会传递到应用来解决此问题。

您首先需要调试并检查它是否真的在 notificatonOpened 方法中收到消息。这可能是由于它在后台未正确接收消息。

最新更新