Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OneSignal推送通知ClickEvent显示空值Windows phone 8.1 C#_C#_Windows_Notifications_Windows Phone 8.1_Onesignal - Fatal编程技术网

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

OneSignal推送通知ClickEvent显示空值Windows phone 8.1 C#,c#,windows,notifications,windows-phone-8.1,onesignal,C#,Windows,Notifications,Windows Phone 8.1,Onesignal,我正在为windows phone 8.1开发单信号推送通知。通知工作正常。但当我点击通知时,消息显示空值。当应用程序打开时,事件中会显示消息。 如何获取要保存在通知屏幕中的通知文本 我的App.Xaml.cs函数代码在这里 OnLaunched事件: OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e); OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e, noti

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

我的App.Xaml.cs函数代码在这里

OnLaunched事件:

 OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e);
 OneSignal.Init("32cdee4b-7838-4b6c-a024-ae25cecb2234", e, notificationOpened);
以下是NotificationOpen函数代码:

  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");


        }
private async void notificationOpened(字符串消息、IDictionary附加数据、bool isActive)
{
if(message!=null&&message!=“”)
{
DatabaseHelperClass Db_Helper=新建DatabaseHelperClass();//从ViewModel/DatabaseHelperClass.cs为DatabaseHelperClass.cs创建对象
尝试
{
Db_Helper.Insert(新消息类(消息));
}
抓住
{
MessageDialog=新建MessageDialog(“保存此详细信息时出错。请稍后再试!”;//文本不应为空
wait messageDialog.ShowAsync();
}
}
其他的
{
//这里有空值的检查
设置类保存设置(“NotiClick”、“MoveToMeldingen”);
}

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

您首先需要调试并检查它是否真的以NotificationOpen方法接收消息。这可能是因为它在后台未正确接收消息。

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


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

当应用程序处于后台时,此方法不会调用,而当用户单击通知栏中的接收通知时,则通过此方法显示空值。然后是值否的问题未通过库。一个原因可能是您的应用程序在后台终止。其他应用程序需要一些代码验证。您是对的。当用户从通知栏打开通知时,Sdk不会收到消息。但其他数据和参数的值不变。因此,我需要将我的消息放在其他详细信息中,其中键和值参数将返回我的结果。