Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在应用程序未运行时接收推送通知时执行代码_Ios_Swift_Apple Push Notifications_Uilocalnotification - Fatal编程技术网

Ios 在应用程序未运行时接收推送通知时执行代码

Ios 在应用程序未运行时接收推送通知时执行代码,ios,swift,apple-push-notifications,uilocalnotification,Ios,Swift,Apple Push Notifications,Uilocalnotification,我正在使用提醒应用程序。该应用程序将在用户设置的特定时间显示通知。我已使用本地通知显示提醒 问题是,当它收到本地通知时,我想运行一些代码,即使用户没有点击通知。在swift中有什么方法可以做到这一点吗?我认为您应该在AppDelegate.swift中添加方法应用程序(\uApplication:UIApplication,didReceive notification:UILocalNotification)。您想要实现的代码应该在那里。即使用户没有点击通知,代码也将被执行。但无论如何,应用程

我正在使用提醒应用程序。该应用程序将在用户设置的特定时间显示通知。我已使用本地通知显示提醒


问题是,当它收到本地通知时,我想运行一些代码,即使用户没有点击通知。在swift中有什么方法可以做到这一点吗?

我认为您应该在AppDelegate.swift中添加方法
应用程序(\uApplication:UIApplication,didReceive notification:UILocalNotification)
。您想要实现的代码应该在那里。即使用户没有点击通知,代码也将被执行。但无论如何,应用程序应该正在运行。 以下是苹果文档的摘录:

如果 发出通知时,应用程序在前台不活动, 系统使用UILocalNotification对象中的信息 确定是否应显示警报、标记应用程序图标或 播放声音。如果应用程序在前台运行,则系统 直接调用此方法,而不以任何方式通知用户

如果愿意,可以在委托中实现此方法 通知发生了本地通知。例如,日历 应用程序可能会使用本地通知提醒用户即将发生的事件 事件

如果用户选择在发生本地通知时打开应用程序, 已将启动选项字典传递给 应用程序(:willFinishLaunchingWithOptions:)和 应用程序(:didFinishLaunchingWithOptions:)方法包含 本地通知键。此方法在您的 委托的应用程序(uu3;:didFinishLaunchingWithOptions:)方法


这是正确的答案。正如@grigory konovalov在这里指出的那样,如果你的应用程序在后台,你就不能启动逻辑。如果你的应用程序是后台的,他们必须点击通知,你的逻辑才会出现。感谢回复。有什么方法可以让应用程序保持在后台吗??我需要在用户收到通知时配置下一个通知。您说“在用户收到通知时配置下一个通知”是什么意思?当应用程序处于后台并且收到通知时,有两种可能。第一个单用户忽略通知和第二个单用户点击通知打开应用程序。在任何情况下,应用程序委托中的通知处理程序都将在应用程序打开之前启动。此外,不要忘记ViewWillAppearch方法-您可以根据此方法中的应用程序逻辑执行某些操作。我建议您熟悉@GrigoryKonovalov。我需要做的是,如果用户忽略通知,我需要配置另一个通知以再次显示提醒。我可以这样做吗?