My code:
if let url = NSURL(string: "www.google.com") {
let safariViewController = SFSafariViewController(URL: url)
safariViewController.view.tintColor = UIColor.primaryOrangeColor()
presentViewController(safariViewController, animated: true, completion: nil)
}
This crashes on initialization only with exception:
The specified URL has an unsupported scheme. Only HTTP and HTTPS URLs are supported
When I use url = NSURL(string: "http://www.google.com")
, everything is fine.
I am actually loading URL's from API and hence, I can't be sure that they will be prefixed with http(s)://
.
How to tackle this problem? Should I check and prefix http://
always, or there's a workaround?
You can check for availability of http in your
url
string before creatingNSUrl
object.Put following code before your code and it will solve your problem (you can check for
https
also in same way)Try checking scheme of
URL
before making an instance ofSFSafariViewController
.Swift 3:
Swift 2:
I did a combination of Yuvrajsinh's & hoseokchoi's answers.
Use WKWebView's method (starting iOS 11),