【发布时间】:2014-08-14 13:35:53
【问题描述】:
我正在创建一个用于创建警报的应用程序。如果应用程序不在后台或处于非活动状态,则一切正常。但是,如果应用程序处于非活动状态(因为我按下了主页按钮或按下了锁定按钮),当通知发生时,在滑动或触摸横幅后,代码不会执行并且应用程序不会完成其操作.
我在这里和网上阅读了很多主题,但没有什么可以帮助我。文档说:
在 iOS 中,您可以通过检查应用程序状态来确定应用程序是否由于用户点击操作按钮而启动,或者通知是否已发送到已运行的应用程序。在委托的 application:didReceiveRemoteNotification: 或 application:didReceiveLocalNotification: 方法的实现中,获取 applicationState 属性的值并对其进行评估。如果值为 UIApplicationStateInactive,则用户点击了操作按钮;如果值为 UIApplicationStateActive,则应用程序在收到通知时位于最前面。
但滑动或点击通知后似乎没有调用 application:didReceiveLocalNotification: 方法。当发生通知且应用处于非活动状态时,不会调用此方法。如果应用程序处于非活动状态,如何执行通知处理代码?
这是我的代码:
func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!)
{
if(UIApplication.sharedApplication().applicationState == UIApplicationState.Active)
{
.
println("Notification recieved and handled when inactive")
.
}
.
.
.
}
当我的应用程序处于后台或非活动状态或处于锁定屏幕且我的应用程序仍然“活动”时(当我的应用程序处于前台时按下锁定屏幕按钮时),所有这些代码都不会执行。在这些情况下如何处理本地通知?我如何识别应用程序是否因为发生本地通知而变得活跃?我没有找到解决这个问题的方法。
【问题讨论】:
-
ios8 处于保密协议之下。你可以在 Apple DevForums 中提问
-
此外,Apple 同意,对于 Apple 在 WWDC(Apple 全球开发者大会)上披露的有关预发布 Apple 软件和服务的技术信息,您将不受上述保密条款的约束,但以下情况除外:您不得发布屏幕截图、撰写公开评论或重新分发任何预发布的 Apple 软件或服务。
-
iOS 8 不再受保密协议约束。我遇到了同样的问题。你解决了吗?
-
是的,正如@Daij-Djan 所说,正确答案如下。
标签: ios notifications swift uilocalnotification