Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.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
iOS中的自定义推送通知_Ios_Push Notification_Apple Push Notifications_Javapns - Fatal编程技术网

iOS中的自定义推送通知

iOS中的自定义推送通知,ios,push-notification,apple-push-notifications,javapns,Ios,Push Notification,Apple Push Notifications,Javapns,我来自Android背景,现在从事跨平台移动应用。我对iOS一窍不通。在我的应用程序中,我需要自定义通知栏中显示的推送通知。在安卓系统中,我实现了这一点。有人能在iOS上帮我吗 这是我的json数据: { "Test1":"Value 1", "Test2":"Problem:[{"a":"b"},{"c":"d"}]" } 输出应为:值1-->b,d 我试过的 - (void)handleBackgroundNotification:(NSDictionary *)notification

我来自Android背景,现在从事跨平台移动应用。我对iOS一窍不通。在我的应用程序中,我需要自定义通知栏中显示的推送通知。在安卓系统中,我实现了这一点。有人能在iOS上帮我吗

这是我的json数据:

{
"Test1":"Value 1",
"Test2":"Problem:[{"a":"b"},{"c":"d"}]"
}
输出应为:值1-->b,d

我试过的

- (void)handleBackgroundNotification:(NSDictionary *)notification
{
     NSMutableString *alert = [NSMutableString stringWithString:@""];
    if ([notification objectForKey:@"Test1"]){
        [alert appendString:(NSString *)[notification objectForKey:@"Test1"]];
    }
}

我不知道这是否正确

您正在将Apple推送通知从服务器发送到iOS应用程序。苹果推送通知提供的自由度远远低于Android的GCM。您发送的JSON应该如下所示:

{"aps":{"alert":"message","badge":3,"sound":"sound-file-name"},"custom-property":"custom-value"}
用于显示通知的唯一参数是“alert”参数(有一些小的变化——“alert”参数本身可以是一个字典,并定义一些用于显示消息的附加参数,但没有一个是自定义参数)

您可以添加自定义参数,如上所示,但它们不会显示在通知中(如果用户点击通知,它们将被传递给处理通知的方法)。与Android不同,您不编写显示通知的代码。在iOS中,它是操作系统的一部分


您可以进一步了解通知负载。

您的问题不清楚您询问的是远程通知(Apple推送通知)还是本地通知。您是否正在将消息从服务器发送到应用程序?我正在服务器端使用Java_PNS.jar,然后使用其APNS通知?。我不确定推送通知的内容是否由服务器设置。所以这实际上是一个APNS服务器问题,它与Xcode无关,Xcode只是一个IDE。是的,我使用手机注册的ID从APNS向IOS设备发送消息,它是键入的IOS,而不是IOS:)我仍然以JSON格式接收。我是否需要在客户端进行一些定制?。现在服务器端的响应非常完美。@RED.skul我查看了您提供的链接中的JSON。这是一个有效的APNS有效载荷。有什么问题吗?我收到通知了。但我需要在通知栏中设置通知的格式。我通过了一些链接“DidReceiveEmoteNotification”,这种方法将有助于接收远程通知并显示在通知栏中。你有这个主意。请分享。。。问题仍然没有解决closed@RED.Skull
didReceiveMemotentification
在用户点击通知后被调用,因此它对通知栏中显示的通知的格式没有影响。正如我在回答中所说,您无法通过编程控制应用程序中显示的通知的格式。@RED.skul也许您所读到的
didReceiveMemotentification
指的是当应用程序已经在前台运行时通知到达时发生的情况。在这种情况下,通知栏中不会显示任何内容,并且会调用
didReceiveMemotentification
,并将通知的有效负载作为参数。这是您可以通过编程方式决定如何向用户显示通知的唯一情况。在其他情况下(应用程序未运行或应用程序处于后台),您无法控制。