繁体   English   中英

iOS开发:推送通知可防止我的本地通知被触发

[英]iOS Development: Push notifications prevent my local notifications from firing

我有一个闹钟应用程序,它设计为在前台运行时以特定方式运行,并且它接收由我的应用程序安排的本地通知。 当用户设置闹钟时,我的应用会创建本地通知。 当本地通知触发时,它会调用didReceiveLocalNotification方法来提醒用户。 问题是,如果我的应用程序在前台运行并且推送通知来自不同的应用程序,则它会显示模式推送通知视图,这会阻止我的应用程序在本地通知触发时向用户发出警报。 一旦我解除推送通知模式视图,我的应用程序就会触发本地通知。 有没有解决的办法? 我问,因为如果我的应用程序没有在用户安排它启动时触发警报,那么它有点失败了设置警报的全部目的。

非常感谢你的智慧!

应用程序有5种不同的状态:

  • 前景活跃
  • 前景不活跃
  • Backgroung跑步
  • Backgroung暂停
  • 没跑

当您启动应用程序时,它处于“Foreground Active”,然后,当显示模态推送通知时,您的应用程序将转到“Foreground Inactive”。

在文档中,Apple说(http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html):

如果它在应用程序在前台不活动时传递它,它会显示警报,标记应用程序图标或播放声音 - 无论在UILocalNotification对象中指定的是什么。 如果应用程序在前台运行,则没有警报,标记或声音; 相反,如果委托实现它,则调用application:didReceiveLocalNotification:方法。

所以在前台, application:didReceiveLocalNotification:只有在你的应用程序处于活动状态时才会被调用,并且当你关闭模态通知时它会变为活动状态。

这是边缘线,这种情况没有解决方案。

我不相信有办法绕过它。 您可能能够播放声音或振动,但操作系统已经通过推送通知警报要求用户注意,因此在用户处理第一个操作系统之前发布另一个操作系统真的无济于事。 当用户同时安排两个警报时,您如何处理事情?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM