我认为你应该添加方法
application(_ application: UIApplication, didReceive notification: UILocalNotification)
在AppDelegate中。敏捷的您想要实现的代码应该在那里。即使用户没有点击通知,代码也会被执行。但无论如何,该应用程序应该正在运行。
以下是apple docs的摘录:
如果
发出通知时,应用程序在前台未处于活动状态,
系统使用UILocalNotification对象中的信息
确定是否应显示警报、标记应用程序图标,或
播放声音。如果应用程序正在前台运行,则系统
直接调用此方法,而不以任何方式通知用户。
如果愿意,可以在委托中实现此方法
通知发生了本地通知。例如,日历
应用程序可能会使用本地通知提醒用户即将
事件。
如果用户选择在出现本地通知时打开应用程序,
已将启动选项字典传递给
应用程序(
:willFinishLaunchingWithOptions:)和
应用程序(
:didFinishLaunchingWithOptions:)方法包含
localNotification键。在您的
委派应用程序(\uU:didFinishLaunchingWithOptions:)方法。