【问题标题】:iOS push notifications doesn't work if "aps" informed in JSON如果在 JSON 中通知“aps”,iOS 推送通知将不起作用
【发布时间】:2015-05-05 09:23:59
【问题描述】:

如果我关闭了我的应用并发送这样的推送通知:

{
     "alert" : "Hello, world!",
     "sound" : "default"
}

我的应用正确接收推送通知。但如果我发送这个:

{
    "aps" : {
        "alert" : "Hello, world!",
        "sound" : "default"
    }
}

我的应用从不显示通知。

如果我的应用已打开,我在委托 didReceiveRemoteNotification userInfo: [NSObject : AnyObject] 中正确收到了最后一条通知

为什么 iOS 8 不解析最后一条通知并将其显示为通知?

【问题讨论】:

    标签: ios json notifications push-notification apple-push-notifications


    【解决方案1】:

    如果没有实际发送通知的代码,则完全不清楚问题出在哪里,因为如果您使用一些库或包装器,它可能会添加aps 条目本身。现在,您应该像第一个示例一样继续发送通知,您还将在didReceiveRemoteNotification userInfo: [NSObject : AnyObject] 中获得通知

    【讨论】:

    • 问题在于第三方服务。他们在 JSON 推送通知中添加“aps:”。非常感谢
    【解决方案2】:

    对于目标 C。 看看你是否正确接收了 Json。对于第一个选项,您使用过我认为这样的代码

    (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification {
    
    
     }
    

    这将收到您拥有的字典。但是第二个选项你已经发送了一个数组,它的第一个索引有一个字典所以用 NSArray 替换 NSDictionary 然后接收数组

    第一个索引和检索这样的字典

     (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSArray *)notification {
    
    ......
    
      }
    

    对于 Swift 这段代码对我有用。

     func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
            println("Push Received")
            println(userInfo)
            println(userInfo["aps"])
    
            var state: UIApplicationState = application.applicationState
    
            if state == UIApplicationState.Active {
    
                println(userInfo)
                println(userInfo["aps"])
    
                var alert2 = UIAlertController(title: "Push", message: "Received", preferredStyle: UIAlertControllerStyle.Alert)
                alert2.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { action in
    
                }))
    
    
    
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2019-09-22
      • 2015-12-19
      • 1970-01-01
      相关资源
      最近更新 更多