【问题标题】:Not seeing OSX desktop notifications with test app closed (Lion)关闭测试应用时看不到 OSX 桌面通知 (Lion)
【发布时间】:2013-06-03 11:19:39
【问题描述】:

我正在一个 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 推送到达通知中心?

【问题讨论】:

  • 可以贴一些设置PN的代码吗?
  • 不幸的是,由于我正在使用专有库,因此无法粘贴代码。但是应用程序委托确实得到了 didRegisterForRemoteNotificationsWithDeviceToken: 调用一个有效的令牌,正如我所说,我可以在应用程序打开的情况下接收通知,所以我知道它已正确注册到 APNS。这似乎不是与代码相关的问题,除非我需要将推送配置代码添加到 IOS 中不需要的 OSX。

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


【解决方案1】:

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

[NSApp registerForRemoteNotificationTypes:(NSRemoteNotificationTypeBadge | NSRemoteNotificationTypeAlert)]

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

【讨论】:

  • 我实际上确实发现这是我之前的问题,但忘记更新我的问题,所以我会给你答案(很高兴知道过去只支持徽章)。我还没有看到如果点击警报启动应用程序,会报告回来...
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多