gpt4 book ai didi

iOS 8 Beta 6 - 在应用程序处于后台时处理 UILocalNotification

转载 作者:行者123 更新时间:2023-11-28 09:28:53 25 4
gpt4 key购买 nike

我正在创建一个用于创建警报的应用程序。如果该应用程序不在后台或处于非事件状态,则一切正常。但是,如果应用程序处于非事件状态(因为我按下了主页按钮或我按下了锁定按钮),当通知发生时,在滑动或触摸横幅后,代码不会执行并且应用程序不会完成其操作.

我在这里和网上阅读了很多主题,但没有任何帮助。文档说:

In iOS, you can determine whether an application is launched as a result of the user tapping the action button or whether the notification was delivered to the already-running application by examining the application state. In the delegate’s implementation of the application:didReceiveRemoteNotification: or application:didReceiveLocalNotification: method, get the value of the applicationState property and evaluate it. If the value is UIApplicationStateInactive, the user tapped the action button; if the value is UIApplicationStateActive, the application was frontmost when it received the notification.

但是 application:didReceiveLocalNotification: 方法似乎在滑动或点击通知后不会被调用。当通知发生且应用程序处于非事件状态时,不会调用此方法。如果应用程序处于非事件状态,如何执行通知处理代码?

这是我的代码:

func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!)
{

if(UIApplication.sharedApplication().applicationState == UIApplicationState.Active)
{
.

println("Notification recieved and handled when inactive")

.

}

.
.
.

}

当我的应用程序处于后台或非事件状态或处于锁屏状态且我的应用程序仍处于“事件状态”时(当我的应用程序处于前台时按下锁屏按钮时),所有这些代码都不会执行。在这些情况下我如何处理本地通知?我如何识别该应用程序是否因发生本地通知而变得活跃?我找不到解决此问题的方法。

最佳答案

两种情况:

1 。当您的应用未运行时,仅调用 applicationDidFinishLaunching。(从未被杀或被杀)

在这种情况下,launchOptions NSDictionary 包含 UIApplicationLaunchOptionsLocalNotificationKey


2。如果它正在运行 - 无论状态如何 - didReceiveLocalNotification 被调用

在这种情况下,使用 UIApplication.sharedApplication().applicationState 查看您的应用程序在哪里

注意:在 ios8 中,需要做更多的工作才能实现这一点

关于iOS 8 Beta 6 - 在应用程序处于后台时处理 UILocalNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25309399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com