【问题标题】:How to dial a number by pressing a call button in an iphone app?如何通过在 iphone 应用程序中按通话按钮拨打号码?
【发布时间】:2009-04-20 06:52:33
【问题描述】:

我正在使用表格视图,其中每个销售都有一个特定的电话号码,旁边是一个呼叫按钮,按下该号码是拨打该号码...例如,如果我在单元格中有一个电话号码为 (425)821- 1300 我通过如下代码使用字符串变量phonenumberstring将其更改为标准格式425-821-1300

    phonenumberstring=[phonenumberstring substringFromIndex:1];
    phonenumberstring=[phonenumberstring stringByReplacingOccurrencesOfString:@")" withString:@"-"];

    m_strPhoneNumber = [NSString stringWithFormat:@"tel:%@", self.phonenumberstring];
//[[UIApplication sharedApplication] openURL:[NSURL URLWithString:m_strPhoneNumber]];
    NSURL *url = [[NSURL alloc] initWithString:m_strPhoneNumber];//1
    [[UIApplication sharedApplication] openURL:url];//2

当我在注释的第 1 行和第 2 行进行调试时,事情正在使用这个 url 显示为 nill 并且没有拨打电话

问候

阿伦

【问题讨论】:

    标签: iphone


    【解决方案1】:

    此时 m_strPhoneNumber 和 phonenumberstring 的值是多少。 phonenumberstring 设置是否正确?

    要删除第一个括号,为什么不使用stringByReplacingOccurrencesOfString:@"(" withString:@"" 等。它看起来不那么脆弱。事实上,我建议去掉所有非数字字符——甚至连字符。

    这可能是矫枉过正,但尝试类似:

    m_strPhoneNumber = [NSMutableString stringWithString:@"tel:%@"];
    NSArray *numberTokens = [phonenumberstring componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]];
                for (NSString *token in numberTokens) {
                    m_strPhoneNumber = [m_strPhoneNumber stringByAppendingString:token];
                }
    

    除了小风格,我建议phoneNumberString 更具可读性。我还建议使用更多变量 - 优化器将确保它们不会产生影响,并且会使调试更加容易。

    【讨论】:

    • 嗨,罗杰,谢谢您的帮助..是的,根据我选择的单元格,我得到了正确的电话号码值 m_strPhoneNumber 的格式为@"tel:412-356-8900"..但是在调试 url 的值是 nill 时......请帮助..我的应用程序中只剩下这个问题!问候阿伦
    • 看起来很奇怪。我已经添加了代码来从您的电话号码字符串中删除除数字之外的所有内容 - 试试看。
    • 再次嗨...对不起,我没有注意到您发送的代码..是的,我试过了...但再次在 NSURL *url 中,在调试这部分时,url 值显示为“nill”代码..我认为除非并且直到 url 值没有指示选择的电话号码,否则不会启动呼叫...再次帮助?非常感谢您的回复
    • 嘿,罗杰……谢谢哥们……我现在可以打电话了……是你的代码帮助我做到了……再次感谢
    • 还有一个问题......我想知道我如何编码通话已经结束并且应用程序可以返回到我的主页而不是退出应用程序..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多