电话呼叫期间未呼叫远程通知回叫

时间:2015-08-05 07:32:47

标签: ios apple-push-notifications background-fetch

我创建了一个应用程序,其中在接收推送通知时写入后台获取代码。我在.plist中启用了后台模式,在推送通知有效负载中将content-available键设置为1,注册了推送通知并使用了委托

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

现在,当我的应用程序处于后台时,我会收到一个电话。 在通话过程中,我收到了应用的推送通知 在通话期间收到推送通知时,不会调用推送通知委托。

2 个答案:

答案 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)

我猜在电话呼叫期间,蜂窝芯片正用于语音传输。数据传输是芯片的额外工作,可能会大大影响电池寿命。这是苹果公司更有意识地决定在通话过程中更多地使用静音通知。