[英]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.