我创建了一个应用程序,其中在接收推送通知时写入后台获取代码。我在.plist中启用了后台模式,在推送通知有效负载中将content-available键设置为1,注册了推送通知并使用了委托
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
现在,当我的应用程序处于后台时,我会收到一个电话。 在通话过程中,我收到了应用的推送通知 在通话期间收到推送通知时,不会调用推送通知委托。
答案 0 :(得分:0)
所以在下面的电话中处理推送通知/远程通知的方法是: 当收到电话时,应用程序将变为非活动状态,当电话断开连接时,应用程序将变为活动状态,并且方法" applicationDidBecomeActive"在AppDelegate中调用。您可以在applicationDidBecomeActive中的didReceiveRemoteNotification方法中回调远程通知。
即使您可以在应用程序终止时处理推送通知。 例如,在特定的viewController上移动,didFinishLaunchingWithOptions包含字典,该字典包含终止应用程序并收到推送通知时通知的有效负载。这可以做到。 `。
if (launchOptions != nil)
{
// opened from a push notification when the app is closed
NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo != nil)
{
}
}
else
{
// opened app without a push notification.
}`
希望这会奏效:)
答案 1 :(得分:-1)
我猜在电话呼叫期间,蜂窝芯片正用于语音传输。数据传输是芯片的额外工作,可能会大大影响电池寿命。这是苹果公司更有意识地决定在通话过程中更多地使用静音通知。