当应用程序在 iOS 中关闭且应用程序未在后台运行时从推送通知中获取数据

Posted

技术标签:

【中文标题】当应用程序在 iOS 中关闭且应用程序未在后台运行时从推送通知中获取数据【英文标题】:get data from push notification when app is closed in iOS and app not running in background 【发布时间】:2014-12-12 16:02:24 【问题描述】:

当收到推送通知并且我的应用程序完全关闭时,如何处理此信息?

在这个方法didFinishLaunchingWithOptions:

上只能从NSDictionary获取数据

didReceiveRemoteNotification:

例如:当用户打开应用程序时如何从推送通知中获取数据?而不是当用户直接打开推送通知时。

是否有方法可以响应并检测通知是否未被读取?

【问题讨论】:

【参考方案1】:

你会想要实现

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler

如果需要,这将启动您的应用程序,然后您需要将数据保存在某处,以便当用户下一次启动应用程序时,您可以获取数据并对其进行处理。

From Apples Doc's:

讨论

使用此方法为您的应用处理传入的远程通知。 与 application:didReceiveRemoteNotification: 方法不同,它是 仅当您的应用程序在前台运行时调用,系统 当您的应用程序在前台运行时调用此方法或 背景。此外,如果您启用了远程通知 后台模式,系统启动您的应用程序(或从 暂停状态)并在推送时将其置于后台状态 通知到达。但是系统不会自动 如果用户强制退出它,则启动您的应用程序。在这种情况下, 用户必须在系统之前重新启动您的应用程序或重新启动设备 尝试再次自动启动您的应用。

只要看看方法,我相信你会弄明白的:)

我快速谷歌了一下,这些看起来会有所帮助:

例如:didReceiveRemoteNotification: fetchCompletionHandler: open from icon vs push notification

我在上面看到的第一个教程:http://hayageek.com/ios-background-fetch/

【讨论】:

我有一个简单的问题。如果我从多任务屏幕关闭应用程序,我仍然能够收到通知吗?因为就我而言,关闭应用程序时似乎收不到通知。 @BooRanger 非常感谢您的回答!!!!!!爱你(虽然不合适) @BooRanger 谢谢,我花了很多时间寻找这个

以上是关于当应用程序在 iOS 中关闭且应用程序未在后台运行时从推送通知中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

即使应用程序未在后台运行,VoIP 推送通知也会自动打开应用程序,这在 iOS 中是不是可行?

Flutter:当应用程序处于后台但未在 iOS 中终止时,无法在通知单击时重定向到特定屏幕

iOS 10 Firebase 通知未在后台显示

即使应用程序未在后台运行,也可以自动打开应用程序的VoIP推送通知是否可以在iOS中使用?

当应用程序在前台 iOS 中时,未在通知托盘(顶部)中获取推送通知

已安排本地通知,但未在挂起和未运行模式下传递