处理锁屏ios上的推送通知

Posted

技术标签:

【中文标题】处理锁屏ios上的推送通知【英文标题】:Handling Push Notification on Lock Screen ios 【发布时间】:2015-08-04 08:44:17 【问题描述】:

在我的应用程序中推送通知以json 格式接收数据

这是什么

    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 内容在推送通知中 那么我该如何处理呢。

谢谢。

在图片中 Quizmatch 收到json 格式的推送通知

【问题讨论】:

【参考方案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(@"%@",notification['Person']['Address']); 以上将输出:

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

参考:link

【讨论】:

【参考方案2】:

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


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

像这样更新您的通知结构,在“job_id”等其他键下发送数据

【讨论】:

以上是关于处理锁屏ios上的推送通知的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?

iOS 通知中心快速回复

收到 iOS 推送通知但未显示任何消息

收到消息时向 iOS 推送通知不起作用

推送通知声音在 iOS8 上不起作用

iOS APN 推送通知 - 设备令牌