从应用程序打开电话(iOS)

时间:2015-08-25 16:31:27

标签: ios objective-c cocos2d-iphone

有人能告诉我如何通过点击按钮打开电话?我已经将它用于野生动物园并且它可以工作

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];

3 个答案:

答案 0 :(得分:2)

您只需要:

NSString *phoneNumber = @"4167371111";

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]])
{    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"tel://" stringByAppendingString:[phoneNumber stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]];
}

如果你想做更高级的事情,比如看看用户是否打过电话,你可以使用CTCallCenter

#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

//Create this property somewhere
@property (strong, nonatomic) CTCallCenter *callCenter;

NSString *phoneNumber = @"4167371111";

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]])
{
    self.callCenter = [[CTCallCenter alloc] init];
    [self.callCenter setCallEventHandler: ^(CTCall* call)
     {
         if ([call.callState isEqualToString: CTCallStateConnected]) {
             NSLog(@"Connected");
         } else if ([call.callState isEqualToString: CTCallStateDialing]) {
             NSLog(@"Dialing");
         } else if ([call.callState isEqualToString: CTCallStateDisconnected]) {
             NSLog(@"Disconnected");
         } else if ([call.callState isEqualToString: CTCallStateIncoming]) {
             NSLog(@"Incoming");
         }
     }];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"tel://" stringByAppendingString:[phoneNumber stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]];
}

答案 1 :(得分:0)

看看this SO问题。

您可以使用

拨打电话
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://0123456789"]];

您必须提供电话号码。如果没有指定电话号码:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://"]];
什么都不会发生。

网址方案存在的问题是,您目前无法打开电话应用。只能开始通话。

答案 2 :(得分:0)

试试这个:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", @"your-phone-number"]]];