在应用程序中推送通知
Posted
技术标签:
【中文标题】在应用程序中推送通知【英文标题】:Push notification while in App 【发布时间】:2012-09-21 19:43:58 【问题描述】:我已经成功设置了一个 mysql+php 推送通知服务器,并且一切正常,除了一件事。如果用户碰巧在应用程序中,他们不会收到推送通知,这有点烦人。有没有办法可以修改它,以便在通知中心或其他地方显示推送通知?
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:当应用程序在下面运行时调用方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
您无法使用 SDK 向通知中心添加任何内容。如果在应用程序未运行 ios 时收到通知,请将其添加到通知中心。您可以像这样在上述方法中显示警报
if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
//show alert
【讨论】:
【参考方案2】:如果您的用户在应用程序中,您的应用程序将收到一条消息给应用程序委托。见
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
在Apple Documentation
当应用程序打开时,您不能在通知中心放置通知。通知中心旨在捕获应用程序未激活时发生的通知。但是,调用应用程序委托很有用,因为您可以以任何您想要的方式向用户显示通知,包括构建您自己的通知中心样式动画(如果您想要的话)。
【讨论】:
非常感谢,我想我可以用它来显示 UIAlertView 或类似的东西,它们基本上会做同样的事情。 手机收到推送通知时似乎没有调用该函数。关闭应用程序后,推送通知就会发出。 没关系,它突然起作用了。不知道为什么。我没有改变任何东西。哦,好吧,我没有抱怨:) 如果应用 ID 正确且与配置文件应用 ID 匹配,并且 APNS 的证书都是最新的且与应用 ID 匹配,则该应用正在真实设备上运行并已调用 @987654323 @ 并成功注册并且 iPhone 在应用程序运行时收到通知,然后该方法将始终在应用程序 delagate 上调用。很多东西都会出错;)以上是关于在应用程序中推送通知的主要内容,如果未能解决你的问题,请参考以下文章