在应用程序中推送通知

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 上调用。很多东西都会出错;)

以上是关于在应用程序中推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在应用程序中从系统推送通知设置跳转到个人推送通知设置?

在 Android 中处理解析推送通知

在应用程序中推送通知

如何在iphone中获取推送通知[重复]

带有 Azure 推送通知的推送通知的多用户应用程序

推送通知操作按钮