1

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

NSString *savedPhone = [[NSUserDefaults standardUserDefaults]
                        stringForKey:@"savedPhone"];

NSString *callNumber = [NSString stringWithFormat:@"%@%@",@"tel://",savedPhone];

NSURL *myURL = [NSURL URLWithString:callNumber];
[[UIApplication sharedApplication] openURL:myURL];

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

4

4 回答 4

1

更改 URL 格式(删除//

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:2135554321"]];
于 2013-02-01T08:15:44.587 回答
0

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

于 2013-02-01T08:19:52.770 回答
0

您可以使用以下代码实现:

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]];
    }
}

这将解决您的问题。

干杯!

于 2013-02-01T08:21:43.507 回答
0
  NSString *number = YOUR-NUMBER;       
  NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"telprompt:%@",number]];

 [[UIApplication sharedApplication] openURL:url]; 

尝试使用此代码,完成通话后它将导航回您的应用

于 2013-02-01T09:03:37.687 回答