推送通知进入时的警报序列

Posted

技术标签:

【中文标题】推送通知进入时的警报序列【英文标题】:Alert sequence when Push Notification comes in 【发布时间】:2011-04-28 18:39:35 【问题描述】:

请帮助我理解这一点:

当按下主页按钮并且 iPhone 应用程序进入后台并收到推送通知时。正在显示一个警报,其中包含该通知的消息,上面带有“查看”按钮。这个警报是从哪里来的——ios 生成的?

在我的代码中,我编写了用于在通知进入我的内部时显示警报的代码

- (void)application:(UIApplication *)iApplication didReceiveRemoteNotification:(NSDictionary *)iUserInfo 

方法。在这个警报动作中,我正在展示我的视图控制器。现在,我最终显示了两个警报 - 一个来自 IOS(我相信)并且点击视图将我带到我的应用程序的最后访问页面,第二个我创建并点击 View 将我带到想要的页面。

请帮助理解这一点。

【问题讨论】:

【参考方案1】:

如果我对您的理解正确,如果您单击View,您将获得两个 AlertView,而不是一个。然后您应该检查应用程序是否处于活动状态。查看 UIApplication 类参考 UIApplication Class Reference #applicationState

- (void)application:(UIApplication *)iApplication didReceiveRemoteNotification:(NSDictionary *)iUserInfo 
    if([application applicationState] == UIApplicationStateActive) 
        //show alert
    

【讨论】:

【参考方案2】:

Oliver Drobnik 在处理通知和应用程序状态时对可能的消息流进行了非常详细的检查。简短版 - 如果您的应用程序不在最前面,操作系统会显示通知并可能会启动您的应用程序以响应用户操作;如果您的应用位于最前面,则您负责所有事情,无论是显示警报还是其他一些处理。

http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

【讨论】:

以上是关于推送通知进入时的警报序列的主要内容,如果未能解决你的问题,请参考以下文章

通过通知进入时iOS会调用哪个方法?

应用程序可以决定在收到推送通知时根据用户字典显示警报吗?

Xamarin.Android 无法在 Android 10 (Q) 中将录制的自定义声音用于推送通知

推送通知进入时调用的方法序列

推送通知徽章清除警报

控制“允许推送通知”警报