当app未运行时,在收到推送通知时执行代码

时间:2018-02-05 12:30:17

标签: ios swift apple-push-notifications uilocalnotification

我正在制作提醒应用。该应用会在特定时间显示由用户设置的通知。我使用本地通知来显示提醒。

问题是,即使用户没有点击通知,我也希望在收到本地通知时运行一些代码。有没有办法在swift中做到这一点?

1 个答案:

答案 0 :(得分:3)

我相信您应该在AppDelegate.swift中添加方法application(_ application: UIApplication, didReceive notification: UILocalNotification)。您希望实现的代码应该在那里。即使用户没有点击通知,代码也会被执行。但无论如何,该应用程序应该运行。 以下是apple docs的摘录:

  

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

     

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

     

如果用户选择在发生本地通知时打开应用,   传递选项字典传递给   application(:willFinishLaunchingWithOptions :)和   application(:didFinishLaunchingWithOptions :)方法包含   localNotification键。在你之后的某个时刻调用这个方法   委托的应用程序(_:didFinishLaunchingWithOptions :)方法。