代码之家  ›  专栏  ›  技术社区  ›  Rémi Telenczak

当应用处于后台模式时获取通知

  •  2
  • Rémi Telenczak  · 技术社区  · 9 年前

    我想在收到通知时调用函数,即使我的应用程序处于后台

    我在stackoverflow上找到了很多问题/答案 但在我身上却不是。所以我会解释我所做的一切

    我已激活后台模式

    here

    我的信息。plist很好

    here

    在我的didFinishLaunchingWithOption中

        application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Badge | .Sound | .Alert, categories: nil))
        application.registerForRemoteNotifications()
    

    我有

    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
        println("NOTIFICATION 4");
    }
    
    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
        println("NOTIFICATION FETCH");
    }
    

    但我发送通知时看不到日志

    我的通知是这样发送的

        { deviceToken: XXXXX,
        expiration: 1442225011,
        identifier: 0,
        payload: 
        { 'content-available': '1',
        aps: { badge: 0, alert: 'Hello' } } }
    

    我不知道该做什么……我真的无法收到此通知,什么都没有发生(我收到横幅,但没有调用我的功能)

    非常感谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   Mousavian    9 年前

    正如您在文档中看到的:

    aps字典还可以包含内容可用属性。值为1的content available属性允许远程通知充当静默通知。

    因此,您应该插入aps字典中可用的内容,如下所示:

    { deviceToken: XXXXX,
    expiration: 1442225011,
    identifier: 0,
    payload: 
    { aps: { 'content-available': '1', badge: 0, alert: 'Hello' } } }