如何在浏览器项目中显示用户 google 搜索引擎结果
how to show user google search engine result in a browser project
我正在为 iPhone、iPad 实现 UIWebView
和 swift 的浏览器。一切正常,但问题是当用户输入错误或未完成他们最喜欢的网站的 URL 时,它似乎崩溃并且不呈现任何内容。所以如果浏览器找不到请求的页面,我想以某种方式做,然后它会自动在 google 搜索引擎上搜索确切的词并在浏览器中显示结果。
如果需要,这是我这部分的代码。
感谢任何帮助
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
//let urlString:String = urlTextField.text!
var urlString: String = urlTextField.text!
if !urlString.starts(with: "http://") && !urlString.starts(with: "https://") {
urlString = "http://\(urlString)"
}
let url:URL = URL(string: urlString)!
let urlRequest:URLRequest = URLRequest(url: url)
webView.load(urlRequest)
textField.resignFirstResponder()
let path: String = url.path
let ext: String = URL(fileURLWithPath: path ).pathExtension
print(ext as Any)
return true
}
您可以添加检查以验证您的 url 字符串是否包含 www
,如果不包含,您可以使用文本设置“https://www.google.com/search?q=”url:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
guard let urlString = urlTextField.text else { return true }
if urlString.starts(with: "http://") || urlString.starts(with: "https://") {
loadUrl(urlString)
} else if urlString.contains(“www”) {
loadUrl("http://\(urlString)")
} else {
searchTextOnGoogle(urlString)
}
textField.resignFirstResponder()
//...
return true
}
func loadUrl(_ urlString: String) {
guard let url = URL(string: urlString) else { return }
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
}
func searchTextOnGoogle(_ text: String) {
// check if text contains more then one word separated by space
let textComponents = text.components(separatedBy: " ")
// we replace space with plus to validate the string for the search url
let searchString = textComponents.joined(separator: "+")
guard let url = URL(string: "https://www.google.com/search?q=" + searchString) else { return }
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
}
我正在为 iPhone、iPad 实现 UIWebView
和 swift 的浏览器。一切正常,但问题是当用户输入错误或未完成他们最喜欢的网站的 URL 时,它似乎崩溃并且不呈现任何内容。所以如果浏览器找不到请求的页面,我想以某种方式做,然后它会自动在 google 搜索引擎上搜索确切的词并在浏览器中显示结果。
如果需要,这是我这部分的代码。
感谢任何帮助
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
//let urlString:String = urlTextField.text!
var urlString: String = urlTextField.text!
if !urlString.starts(with: "http://") && !urlString.starts(with: "https://") {
urlString = "http://\(urlString)"
}
let url:URL = URL(string: urlString)!
let urlRequest:URLRequest = URLRequest(url: url)
webView.load(urlRequest)
textField.resignFirstResponder()
let path: String = url.path
let ext: String = URL(fileURLWithPath: path ).pathExtension
print(ext as Any)
return true
}
您可以添加检查以验证您的 url 字符串是否包含 www
,如果不包含,您可以使用文本设置“https://www.google.com/search?q=”url:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
guard let urlString = urlTextField.text else { return true }
if urlString.starts(with: "http://") || urlString.starts(with: "https://") {
loadUrl(urlString)
} else if urlString.contains(“www”) {
loadUrl("http://\(urlString)")
} else {
searchTextOnGoogle(urlString)
}
textField.resignFirstResponder()
//...
return true
}
func loadUrl(_ urlString: String) {
guard let url = URL(string: urlString) else { return }
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
}
func searchTextOnGoogle(_ text: String) {
// check if text contains more then one word separated by space
let textComponents = text.components(separatedBy: " ")
// we replace space with plus to validate the string for the search url
let searchString = textComponents.joined(separator: "+")
guard let url = URL(string: "https://www.google.com/search?q=" + searchString) else { return }
let urlRequest = URLRequest(url: url)
webView.load(urlRequest)
}