在锁定屏幕ios上处理推送通知

时间:2015-08-04 08:44:17

标签: ios objective-c

在我的应用程序中,推送通知以 aps = { alert = "{\"messsage\":\"what to do when boarded \",\"chatBox\":\"130701.130693\",\"sender_id\":\"130701\",\"sender_name\":\"reg41\",\"sender_image_url\":\"http:\\/\\/www.playmit.com\\/images\\/user_profile_images\\/\",\"receiver_id\":\"130693\",\"type\":\"chat\"}"; }; } 格式

接收数据

这是什么

json

enter image description here

但是当应用程序未运行或应用程序处于后台时,在锁定屏幕上,当收到推送通知时,它会在推送通知中显示相同的json内容 那么我该如何处理呢。

感谢。

在图片中,Quizmatch以bin/Debug格式

接收推送通知

2 个答案:

答案 0 :(得分:1)

不允许在aps标记内放置自定义标记。以下是有关文件的说明:

提供者可以在Apple保留的aps命名空间之外指定自定义有效负载值。自定义值必须使用JSON结构化和原始类型:字典(对象),数组,字符串,数字和布尔值。 因此,在您的情况下,您应该执行以下操作:

{
    "aps": {
        "alert": "Hello World",
        "sound": "default"
    },
    "Person": {
        "Address": "this is a test address",
        "Name": "First Name",
        "Number": "023232323233"
    }
}

因此,您可以通过在主JSON中查找它的键来读取自定义有效内容,而不是在“aps”中:

的NSLog(@ “%@”,通知[ '人'] [ '地址']); 以上将输出:

这是一个测试地址 您可以找到有关自定义有效负载的更多信息,以及Apple文档中的一些示例。

参考:link

答案 1 :(得分:0)

如果未阻止用户进行设置,则始终显示aps.alert

{
    "aps": {
         "badge": 10,
         "alert": "Hello world!",
         "sound": "cat.caf"
    },
    "job_id": 1
}

像这样更新你的通知结构,在其他一些键下发送数据,例如" job_id"