当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?

Posted

技术标签:

【中文标题】当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?【英文标题】:How to handle Firebase push notification when iOS app is suspended/killed and user clicks on the notification? 【发布时间】:2019-09-20 23:16:20 【问题描述】:

我想知道应该回调什么函数,或者当我的应用被挂起/终止时我收到通知时。当我的应用程序处于前台/后台时,我能够处理,但是当应用程序被杀死时,我不确定如何以及在哪里处理或解析我的通知有效负载?

【问题讨论】:

【参考方案1】:

在从通知打开应用程序时,您将在 application:didFinishedLaunchingWithOptions 方法中获取通知数据。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    if (launchOptions != nil)
    
        // opened from a push notification when the app is closed
        NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (userInfo != nil)
        
             NSLog(@"userInfo->%@", [userInfo objectForKey:@"aps"]);
        
    
    else
    
        // opened app without a push notification.
    

斯威夫特 5.1

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool 
    if launchOptions != nil 
        // opened from a push notification when the app is closed
        let userInfo = launchOptions?[.remoteNotification] as? [AnyHashable : Any]
        if userInfo != nil 
            if let object = userInfo?["aps"] 
                print("userInfo->\(object)")
            
        
     else 
        // opened app without a push notification.
    

【讨论】:

在 Swift 中怎么样? 现在我需要展示和来自 appdelegate 的 Viewcontroller。我怎样才能做到这一点? 您可以使用ApplicationDelegate.window.rootviewcontroller来呈现viewcontroller

以上是关于当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序处于状态后台或被杀死时,如何在不点击通知的情况下存储 iOS 远程通知?

iOS React 在应用程序被杀死时推送通知

如果应用程序被杀死/运行,ios显示/隐藏通知

当应用程序被杀死时,iOS 没有收到推送通知

当应用程序被杀死(非活动)时,点击 Firebase 通知不起作用

当应用程序被杀死时,在推送通知后执行操作:react-native,IOS