diff --git a/SBrowser/Browser View/BrowserViewController.swift b/SBrowser/Browser View/BrowserViewController.swift index 750311d..b33e332 100644 --- a/SBrowser/Browser View/BrowserViewController.swift +++ b/SBrowser/Browser View/BrowserViewController.swift @@ -252,18 +252,30 @@ class BrowserViewController: UIViewController, WKNavigationDelegate, // MARK: UITextField Delegate func textFieldShouldReturn(_ textField: UITextField) -> Bool { - if let text = textField.text, var url = URL(string: text) { - if url.scheme == nil { - let urlString = "https://\(text)" - if let fixedURL = URL(string: urlString) { - url = fixedURL + if let text = textField.text?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) { + + // Dumb rules for stuff that "looks like" a URL + if !text.contains(" "), + text.components(separatedBy: ".").count > 1, + var url = URL(string: text) + { + if url.scheme == nil { + let urlString = "https://\(text)" + if let fixedURL = URL(string: urlString) { + url = fixedURL + } } + + tab.beginLoadingURL(url) + } else { + // Assume google search + let queryString = text.replacingOccurrences(of: " ", with: "+") + let searchURL = URL(string: "https://google.com/search?q=\(queryString)&gbv=1")! // gbv=1: no JS + tab.beginLoadingURL(searchURL) } - tab.beginLoadingURL(url) + textField.resignFirstResponder() } - - textField.resignFirstResponder() return false }