通过单击推送通知或单击应用程序图标来确定是否已打开应用程序

时间:2019-09-24 17:37:50

标签: swift xcode push-notification apple-push-notifications

我在这里看到了很多与此问题有关的问题,但没有一个能准确回答这个问题。

是否可以检查用户是否通过单击推送通知打开了应用程序,还是通过用户单击主页上的应用程序图标来打开应用程序。我需要我的代码针对不同的场景做不同的事情。

许多人一直在说使用didReceiveRemoteNotification,它只检查是否已收到通知。通知是否被推送都没关系。

1 个答案:

答案 0 :(得分:2)

要查看应用程序的启动方式,请在应用程序(_:didFinishLaunchingWithOptions :)中检查launchOptions键。例如

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        if let keys = launchOptions?.keys {
            if keys.contains(.location) {
                NSLog("Launched due to location update");
            } else if keys.contains(.remoteNotification) {
                NSLog("Launched due to remote notification");
            }
        } else {
            NSLog("Launched manually");
        }

    }

有关更多详细信息,请阅读https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app#2922740上的Apple官方文档