延迟openURL(网址)拨打电话

时间:2014-08-25 00:17:07

标签: ios iphone nsurl

我根据Single View模板编写了一个准系统应用程序,该模板只在应用程序变为活动状态时进行调用。我发现当我执行openURL拨打电话时会有一致的10秒延迟。

-(void) dial {
    NSLog(@"LOADED");
    NSString *number = @"1NNNNNNNNNN";  // Actual number here - hardcoded for testing
    NSURL *phoneUrl = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", number]];

    if ([[UIApplication sharedApplication] canOpenURL:phoneUrl]) {
        NSLog(@"Calling");
        [[UIApplication sharedApplication] openURL:phoneUrl];
        NSLog(@"Exiting");
    } else {
        NSLog(@"Not calling");
    }
}

这里叫它:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"AppName: applicationDidBecomeActive");

    ViewController *vc = (ViewController *) self.window.rootViewController;
    [vc dial];
}

以下是我对日志的了解:

2014-08-24 15:55:00.954 AppName[899:60b] applicationDidBecomeActive
2014-08-24 15:55:00.956 AppName[899:60b] LOADED
2014-08-24 15:55:00.979 AppName[899:60b] Calling
2014-08-24 15:55:10.988 AppName[899:60b] Exiting
2014-08-24 15:55:12.193 AppName[899:60b] applicationDidEnterBackground
2014-08-24 15:55:12.196 AppName[899:60b] applicationWillTerminate

我已经尝试构建Release,启用所有优化以及其他一些优化,但它们似乎都没有帮助。

我已经看到第三方应用程序触发了电话,并且没有这10秒的延迟(我见过其他人也有这种情况)。有谁可以避免这种延迟?

1 个答案:

答案 0 :(得分:0)

问题似乎是iOS7特有的。 iOS 6应用程序没有这个问题,iOS 8不再有这个问题。