我正在尝试打开带有所选号码的iPhone通话屏幕,点击UIlabel,这是swift中的超链接。
出现空白屏幕1秒钟然后继续。没有iPhone通话屏幕出现。不知道我的代码有什么问题。
viewDidLoad中的代码
let strPhone = "080 2854 2105"
let attributedPhoneStr = NSMutableAttributedString(string:strPhone, attributes:[NSLinkAttributeName: NSURL(string: "http://aerospace.honeywell.com")!])
lblPhoneContact.attributedText = attributedPhoneStr
lblPhoneContact.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed"))
lblPhoneContact.addGestureRecognizer(gestureRecognizer)
功能labelPressed
func labelPressed() {
let url:NSURL = NSURL(string: "tel://08028542105")!
UIApplication.sharedApplication().openURL(url)
}
我的代码中有什么错误或遗漏。 我试着在我的iPhone设备上运行。
答案 0 :(得分:0)
快速使用
let url:NSURL = NSURL(string: "telprompt:08028542105")!
而不是
let url:NSURL = NSURL(string: "tel://08028542105")!
答案 1 :(得分:0)
您可以尝试使用GCD的dispatch_async来调用“openURL”方法:
dispatch_async(dispatch_get_main_queue()) { () -> Void in
UIApplication.sharedApplication().openURL(url)
}
答案 2 :(得分:0)
你应该从uri中省略// - 即。它应该只是
let url:NSURL = NSURL(string: "tel:08028542105")!