如何在iOS10中使用openURL?
How to use openURL in iOS 10?
我正在开发 iOS 10 应用程序,由于 openURL 已被弃用,我需要一些使用新方法的帮助。我面临的问题是不知道在选项参数中传递什么。
这是我的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"] options:nil completionHandler:nil];
编译器发出警告:"Null passed to a callee that requires a non-null argument."
对我应该传递什么感到困惑...?
你应该这样写:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"] options:@{} completionHandler:nil];
对于 Swift 3 你应该使用这个:
UIApplication.shared().open(url: URL, options: [String: AnyObject], completionHandler: ((Bool) -> Void)?)
例如我在项目中使用的:
let url = URL(string: "http://kaznews.kz")
UIApplication.shared.open(url!, options: [:], completionHandler: nil)
这是没有选项和处理程序的最简单方法。
对于 iOS 10.2 和 swift 3.1
private var urlString:String = "https://google.com"
@IBAction func openInSafari(sender: AnyObject) {
let url = NSURL(string: self.urlString)!
UIApplication.shared.open(url as URL, options: [ : ]) { (success) in
if success{
print("Its working fine")
}else{
print("You ran into problem")
}
}
}
我正在开发 iOS 10 应用程序,由于 openURL 已被弃用,我需要一些使用新方法的帮助。我面临的问题是不知道在选项参数中传递什么。
这是我的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"] options:nil completionHandler:nil];
编译器发出警告:"Null passed to a callee that requires a non-null argument."
对我应该传递什么感到困惑...?
你应该这样写:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"] options:@{} completionHandler:nil];
对于 Swift 3 你应该使用这个:
UIApplication.shared().open(url: URL, options: [String: AnyObject], completionHandler: ((Bool) -> Void)?)
例如我在项目中使用的:
let url = URL(string: "http://kaznews.kz")
UIApplication.shared.open(url!, options: [:], completionHandler: nil)
这是没有选项和处理程序的最简单方法。
对于 iOS 10.2 和 swift 3.1
private var urlString:String = "https://google.com"
@IBAction func openInSafari(sender: AnyObject) {
let url = NSURL(string: self.urlString)!
UIApplication.shared.open(url as URL, options: [ : ]) { (success) in
if success{
print("Its working fine")
}else{
print("You ran into problem")
}
}
}