繁体   English   中英

在iOS9上拨打iPhone

[英]dialing iPhone on iOS9

这个问题有很多答案,但是在iOS 9上存在一些问题。 当我使用此代码时:

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:self.lblPhone.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

我收到此错误:

LaunchServices:错误:URL方案没有注册的处理程序(空)

然后我用以下命令更改Info.plist:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>telprompt</string>
    <string>tel</string>
</array>

但是什么都没有改变!

所以我尝试了第二个代码,这可行:

NSString *numberString = @"004986632461";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",numberString]]];

但这不是:

NSString *numberString = [NSString stringWithFormat:@"%f", [[_lblPhone text] floatValue]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",numberString]]];

正在拨号,但号码错误。 任何想法?

您的第二段代码不起作用,因为您试图将文本设置为浮点值格式。

这行:

NSString *numberString = [NSString stringWithFormat:@"%f", [[_lblPhone text] floatValue]];

字符串@"004986632461"的值4986632704.000000 @"004986632461"

跳过float部分。 做就是了:

NSString *numberString = _lblPhone.text;

永远不要尝试将电话号码视为数字值。 它是文本,仅应视为(并存储)为文本。

尝试:

NSString *phoneNumber = [@"tel://" stringByAppendingString:self.lblPhone.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

以前,大多数开发人员都使用telprompt ,因为它会在通话后返回应用程序,而tel将返回主屏幕。 但是从iOS 8开始, tel将在通话后返回到该应用。 因此您可以使用它。

我自己解决了这个问题。 很简单 我必须清理不可见的空间!

NSString *numberString = [_lblPhone.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM