我想在接收静默通知然后生成本地通知时根据某些条件显示节目通知。还可以在xcode中启用后台模式并启用远程通知和后台获取。对于像这样的无声通知消息格式 -
{
"message":{
"token":"iosdevicetoken",
"apns": {
"payload": {
"aps": {
"content-available": 1,
"category": "GENERAL",
"priority": "high",
"token": "randomkey",
"customkey": "abcs"
}
}
}
}
}
但是当应用程序处于被杀死状态时,下面的委托方法不会被调用(从背景状态滑动)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
}
这是故意的。从documentation为application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
:
此外,如果您启用了远程通知后台模式,系统将启动您的应用程序(或将其从暂停状态唤醒),并在远程通知到达时将其置于后台状态。但是,如果用户强行退出,系统不会自动启动您的应用。在这种情况下,用户必须重新启动应用程序或重新启动设备,然后系统才会再次尝试自动启动应用程序。
(重点补充)
iOS看到用户从任务切换器中删除应用程序,作为他们不希望应用程序在后台运行的信号。出于这个原因,iOS将不会在后台重新启动应用程序,直到用户明确重新启动它。