来自 NSUserDefaults 的 iOS 呼叫电话号码



我正在尝试将电话号码存储为 NSUserDefaults 中的 NSString。由于某种原因,下面的代码不起作用。如果我不使用变量,代码就可以工作,但我无法让它工作。有人知道为什么吗?

NSString *savedPhone = [[NSUserDefaults standardUserDefaults]
                        stringForKey:@"savedPhone"];
NSString *callNumber = [NSString stringWithFormat:@"%@%@",@"tel://",savedPhone];
NSURL *myURL = [NSURL URLWithString:callNumber];
[[UIApplication sharedApplication] openURL:myURL];

如果有人有任何想法,请告诉我。谢谢!

更改 URL 格式(删除//

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:2135554321"]];
您可以使用

以下代码实现:

NSUserDefaults *objUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *savedPhone = [objUserDefaults objectForKey:@"savedPhone"];
[self callNumber:savedPhone];

然后添加以下函数:

-(void)callNumber:(NSString *)pstrContactNo
{
    NSString *strDeviceModel = [UIDevice currentDevice].model;
    if(![strDeviceModel isEqualToString:@"iPhone"])
    {
            UIAlertView *objAlertMsg = [[UIAlertView alloc] initWithTitle:@""
                                                       message:@"Calling is not supported in this device."
                                                      delegate:nil
                                             cancelButtonTitle:@"OK"
                                             otherButtonTitles:nil];
       [objAlertMsg show];
       [objAlertMsg release];
    }
    else
    {
        pstrContactNo = [NSString stringWithFormat:@"tel:%@",pstrContactNo];
        NSString *strDialedContact = [pstrContactNo stringByReplacingOccurrencesOfString:@" " withString:@""];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:strDialedContact]];
    }
}

这将解决您的问题。

干杯!

这样更改callNumber:NSString *callNumber = [NSString stringWithFormat:@"tel:%@",savedPhone];

  NSString *number = YOUR-NUMBER;       
  NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"telprompt:%@",number]];
 [[UIApplication sharedApplication] openURL:url]; 

尝试使用此代码,它将在完成调用后导航回您的应用程序

最新更新