当应用程序处于后台模式时获取通知
Posted
技术标签:
【中文标题】当应用程序处于后台模式时获取通知【英文标题】:Get notification when app is in background mode 【发布时间】:2015-09-14 10:16:06 【问题描述】:我想在收到通知时调用一个函数,即使我的应用程序在后台
我在 *** 上发现了很多问题/答案 但在我身上却没有。所以我会解释我所做的一切
我开启了后台模式
here
我的 info.plist 很好
here
在我的 didFinishLaunchingWithOption 中我有
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Badge | .Sound | .Alert, categories: nil))
application.registerForRemoteNotifications()
我有
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
println("NOTIFICATION 4");
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
println("NOTIFICATION FETCH");
但是当我发送通知时我看不到我的日志
我的通知是这样发送的
deviceToken: XXXXX,
expiration: 1442225011,
identifier: 0,
payload:
'content-available': '1',
aps: badge: 0, alert: 'Hello'
我不知道该怎么做......我真的无法收到此通知,没有任何反应(我收到横幅但没有调用我的函数)
非常感谢
【问题讨论】:
【参考方案1】:正如您在文档中看到的那样:
aps 字典也可以包含 content-available 属性。值为 1 的 content-available 属性让远程通知充当“静默”通知。
所以你应该在 aps 字典中插入 content-available,像这样:
deviceToken: XXXXX,
expiration: 1442225011,
identifier: 0,
payload:
aps: 'content-available': '1', badge: 0, alert: 'Hello'
【讨论】:
谢谢,没关系!但是......其他问题。我想在收到通知时运行计时器。但他不叫计时器……我该怎么办?谢谢 您有一个 30 秒或更短(我认为)的窗口来运行执行和获取数据所需的所有代码。据我所知,没有办法让应用程序继续运行。在这种情况下,您可能需要更改架构。以上是关于当应用程序处于后台模式时获取通知的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序处于后台模式时,如何获得错过的 CloudKit 通知?