0
 NSString *phoneStr = @"tel:";
 phoneStr = [phoneStr stringByAppendingFormat:@"%@" , self.ContactPhone];
 NSURL * phoneURL = [NSURL URLWithString:phoneStr];
 [[UIApplication sharedApplication] openURL:phoneURL]; 

此代码不起作用且无法打开电话应用程序,当我打印 phoneURL 的值时,它始终为 null

为什么会这样?

谢谢

4

4 回答 4

3

您需要转义电话字符串:

[NSURL URLWithString:[phoneStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]
于 2012-07-18T12:56:10.097 回答
1

你错过了//电话后

NSString *phoneStr = @"tel://";
 phoneStr = [phoneStr stringByAppendingFormat:@"%@" , self.ContactPhone];
 NSURL * phoneURL = [NSURL URLWithString:phoneStr];
 [[UIApplication sharedApplication] openURL:phoneURL];
于 2012-07-18T12:41:36.203 回答
0

首先检查 self.ContactPhone 是否为空,并在结束通话后使用@"telprompt://"返回或重新启动您的应用程序。

NSString *phoneStr = @"telprompt://";
if([self.ContactPhone length]>0)
{
phoneStr = [phoneStr stringByAppendingFormat:@"%@" , self.ContactPhone];
NSURL * phoneURL = [NSURL URLWithString:phoneStr];
[[UIApplication sharedApplication] openURL:phoneURL];
}
于 2012-07-18T12:50:22.383 回答
0

这里是Swift 4.1的代码

if let url = URL(string: "tel://" + phoneString), UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
于 2018-04-05T09:19:59.590 回答