我有一些代码尝试在应用程序中进行调用,但它似乎没有工作:
UIApplication *myApp = [UIApplication sharedApplication];
NSString *theCall = [NSString stringWithFormat:@"tel://%@",phone];
NSLog(@"making call with %@",theCall);
[myApp openURL:[NSURL URLWithString:theCall]];
有时候,变量phone
就是@"(102) 222-2222"
。如何使用这样的电话号码拨打电话?我是否需要手动提取数字并删除所有额外的标点符号?
答案 0 :(得分:80)
烨。你需要自己解决这些问题。或者您可以使用下面的代码段...
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
NSURL *telURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", cleanedString]];
注意:您可能会想要使用-stringByTrimmingCharactersInSet:
,但只会删除字符串开头和结尾的字符,而不是它们出现在中间。
答案 1 :(得分:23)
要返回原始应用程序,您可以使用telprompt://而不是tel:// - tell提示符将首先提示用户,但是当调用完成后,它将返回到您的应用程序:
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
只是对上述答案的更新。
答案 2 :(得分:1)
这是一个简单的方法,可用于在通话结束后拨打电话并返回应用。
将以下内容添加到.m文件
.recentconcert{
background-image: url('https://i.scdn.co/image/8b0172dd313c66872cfd01288cffec136b3e13b2');
background-repeat: no-repeat;
background-position: center;
width:50%;
height:500px;
float:left;
}
.whitebox{
background-color: rgba(255,255,255,.6);
width:100%;
margin-top:450px;
height:50px;
text-align:center;
}
然后在以下位置添加以下代码:
- (void) dialNumber:(NSString*) number{
number = [@"telprompt://" stringByAppendingString:number];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:number]];
}