在我的应用程序中,我正在从parse.com对象中检索URL。
我想打开设备的浏览器,并在用户点击按钮时显示从Parse收到的网址。
这是行动:
@IBAction func botonNuevos(sender: AnyObject) {
let query = PFQuery(className: "datos_contacto")
query.getObjectInBackgroundWithId("H52ZxGm3U8", block: {
(questionObject: PFObject?, error: NSError?) -> Void in
let webNuevos: AnyObject! = questionObject!.valueForKey("dato_contacto")
print(webNuevos) //= http://www.touchemotors.com
if let webCallURL = NSURL(string: webNuevos as! String ) {
let application = UIApplication.sharedApplication()
if application.canOpenURL(webCallURL) {
application.openURL(webCallURL)
}
else{
print("failed")
}
}
})
}
单击该按钮时,日志显示收到的URL,但未启动浏览器并显示任何错误。
请告诉我的代码有什么问题。谢谢
答案 0 :(得分:1)
<强>更新强>
最后在与OP讨论后,结果questionObject!.objectForKey("dato_contacto")
返回的值在末尾有空格,因此NSUrl(string:)
没有很好地解析它。
<强>更新强>
您使用了错误的方法NSObject.valueForKey()
。请改用PFObject.objectForKey()
。
适用于iOS 9 :
来自here:
如果您的应用在iOS 9.0上或之后进行了关联,则必须声明该网址 您想要传递给此方法的方案。这样做是通过使用 Xcode项目的Info.plist中的LSApplicationQueriesSchemes数组 文件。对于您希望应用与此方法一起使用的每种网址方案, 将其添加为此数组中的字符串。
如果您的(iOS 9.0或更高版本)应用使用您的方案调用此方法 没有声明,该方法返回false,无论是否 该方案的相应应用程序已安装在设备上。
将http
方案添加到LSApplicationQueriesSchemes
中的Info.plist
数组。