没有看到关闭测试应用程序的OSX桌面通知(Lion)

时间:2013-06-07 08:09:48

标签: objective-c macos osx-lion apple-push-notifications nsnotificationcenter

我正在测试OSX示例应用程序中的推送通知(基于PushyMac)。

我有开发推送通知工作 - 我可以发送推送,并且打开应用程序我在应用程序中收到通知就好了。我当时将它们转发到通知中心,以便可以看到它们。

然而,我无法弄清楚当应用程序未运行时通知应该如何显示在通知中心。关闭应用程序后,我发送的通知永远不会出现在通知中心,我的应用程序在启动时也不会收到。

为了确保我真的收到通知,我根据此文档启用了OSX APNS日志记录:

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG24

我必须为OS X Lion更正一些命令,它将APNS服务名称更改为“apns” - 所以现在记录命令:

sudo defaults write /Library/Preferences/com.apple.apsd APSWriteLogs -bool TRUE
sudo defaults write /Library/Preferences/com.apple.apsd APSLogLevel -int 7
sudo killall apsd

执行此操作后,在日志中我可以看到系统收到推送通知:

<APSCourier: 0x7fe704a262b0>: Received message for enabled topic 'io.push.desktopsample' with payload '<CFBasicHash 0x7fe704a4e340 [0x7fff73447110]>{type = immutable dict, count = 2,
    entries =>
        0 : <CFString 0x7fe704a3f690 [0x7fff73447110]>{contents = "aps"} = <CFBasicHash 0x7fe704a4cd50 [0x7fff73447110]>{type = immutable dict, count = 1,
    entries =>
        0 : <CFString 0x7fe704a3de00 [0x7fff73447110]>{contents = "alert"} = <CFString 0x7fe704a3ff10 [0x7fff73447110]>{contents = "Test Push 8"}
    }

        1 : <CFString 0x7fe704a4e7a0 [0x7fff73447110]>{contents = "ei"} = <CFString 0x7fe704a50b80 [0x7fff73447110]>{contents = "POly"}
    }
    '

但正如我所说,通知中心没有任何内容。有什么想法没有出现通知吗?只有生产APNS推送到达通知中心吗?

1 个答案:

答案 0 :(得分:1)

PushyMac应用程序代码是在OSX 10.7期间编写的,唯一可用的通知类型是Badge。如果您运行的是OSX 10.8,则还要添加警报通知类型,如下所示。

[NSApp registerForRemoteNotificationTypes:(NSRemoteNotificationTypeBadge | NSRemoteNotificationTypeAlert)]

但是,执行此操作后,我无法通过单击通知区域中的警报来启动应用程序。如果您找到答案,请回复。