From 4dd24f642362687669a14c4fb59a0e4b2647057c Mon Sep 17 00:00:00 2001 From: James Magahern Date: Fri, 31 Jul 2020 15:19:39 -0700 Subject: [PATCH] Google search --- .../Browser View/BrowserViewController.swift | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) 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 }