ios - 检测应用程序是否通过点击本地通知 Swift 启动
问题描述
我想知道如何检测我的应用程序是否是从用户点击本地通知启动的。
我目前使用的方法userNotificationCenter(_:didReceive:withCompletionHandler:)
我的应用程序正确检测到应用程序是从使用此方法的通知启动的,仅当应用程序仍处于活动状态时。如果我通过在应用程序切换器中向上滑动来结束应用程序,则点击通知会打开应用程序,但不会在userNotificationCenter(_:didReceive:withCompletionHandler:)
.
我之前设置UNUserNotificationCenter.current().delegate
在self
. viewDidLoad()
有人说要设置它application(_:didFinishLaunchingWithOptions:)
,我尝试这样:
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
UNUserNotificationCenter.current().delegate = self
return true
}
但是,问题仍然存在。
我的问题:我如何检测我的应用程序是否是通过用户点击本地通知启动的,该应用程序是活动的还是非活动的?我正在使用 swift 5 和 Xcode 13。
解决方案
查看options
您的场景委托willConnect
方法或(如果没有场景委托)您的应用委托willFinishLaunching
方法。这会告诉您您是如何启动的。
推荐阅读
- r - 减少 ggplot2 和 grid.arrange 中的所有绘图边距
- api - 显示每个订阅的 Yammer 组的未读消息
- openapi - 如何在 OpenAPI 3.0 中全局设置 Accept 标头?
- ambari - 在点实例中附加节点标签
- angular - Angular 6 依赖注入工厂服务不是单例的
- python - 来自 csv 文件:将第一列的 unix 时间戳转换为年份并创建图表
- javascript - 如何使“SpriteSpin”加载特定图像作为加载的第一张图像?
- python - 如何动态设置序列化器的字段(不是在初始化期间)?
- python - 确保使用 flask-socketio、redis 发送套接字消息
- javascript - 在JS中递归搜索嵌套数组