在我的代码中,我有这个代码片段用拨号前缀拨打电话(基本上是"给我打电话"按钮):
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+0000000000"]];
if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+0000000000"]];
}
我想知道iPhone是否会在没必要的情况下隐藏拨号前缀(?)。
谢谢,
答案 0 :(得分:0)
对于那些感兴趣的人,我找到了一种简单的方法,使用NSLocale currentLocale
:
// Get the current locale.
NSLocale *currentLocale = [NSLocale currentLocale];
// Get country code, e.g. ES (Spain), FR (France), etc.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
if ([countryCode isEqualToString:@"FR"]){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://0000000000"]];
}
else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+33000000000"]];
}
if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
if ([countryCode isEqualToString:@"FR"]){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://0000000000"]];
}
else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+ 33000000000"]];
}
}
美味可口。
答案 1 :(得分:0)
对我自己的问题的第二个回答:
根据这篇文章,漫游时移动国家/地区代码不会改变:Does CTCarrier mobileNetworkCode change when roaming?
因此,最佳方式是:
{
CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = info.subscriberCellularProvider;
NSLog(@"country code is: %@", carrier.mobileCountryCode);
// Get mobile network code
if ([carrier.mobileCountryCode isEqualToString:@"208"]){
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"telprompt://0000000000"]];
}
else {
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"telprompt://+33000000000"]];
}
if(SYSTEM_VERSION_LESS_THAN(@"7.0")) {
if ([carrier.mobileCountryCode isEqualToString:@"208"]){
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:@"tel://0000000000"]];
}
else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+33000000000"]];
}
}
}
也可以。