2017-01-21 84 views
0

我正在嘗試構建簡單的網絡瀏覽器。網頁瀏覽器本身工作得很好,但是當我嘗試在搜索欄中搜索網址時,我無法返回鍵盤來打開網站。我怎樣才能解決這個問題?搜索酒吧和網絡視圖

@IBOutlet weak var searchBar: UISearchBar! 
@IBOutlet weak var webView: UIWebView! 

func searchBarSearchButtonClicked(searchBar: UISearchBar) { 
    searchBar.resignFirstResponder() 
    let text = searchBar.text 
    let urlSB = NSURL(string: text!) 
    let reqSB = NSURLRequest(url:urlSB! as URL) 
    self.webView!.loadRequest(reqSB as URLRequest) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    let url = NSURL(string: "https://www.google.com") 
    let req = NSURLRequest(url:url! as URL) 
    self.webView!.loadRequest(req as URLRequest) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 
+0

請問當你按下搜索程序崩潰?或者它什麼都不做? –

+0

沒有任何事情發生 – user245935

回答

0

我寫了一個演示給你:

結果:

第1步:

enter image description here

第二步:在您要訪問的URL類型。

enter image description here

步驟3:結果,web視圖加載您在搜索欄輸入網址:

enter image description here

的代碼如下:

import UIKit 

class ViewController: UIViewController, UISearchBarDelegate { 

@IBOutlet weak var searchBar: UISearchBar! 

@IBOutlet weak var webView: UIWebView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let url = NSURL(string: "https://www.baidu.com") 
    let req = NSURLRequest(url:url! as URL) 
    self.webView!.loadRequest(req as URLRequest) 

    searchBar.delegate = self 

} 

func searchBarSearchButtonClicked(searchBar: UISearchBar) { 
    searchBar.resignFirstResponder() 
    let text = searchBar.text 
    let urlSB = NSURL(string: text!) 
    let reqSB = NSURLRequest(url:urlSB! as URL) 
    self.webView!.loadRequest(reqSB as URLRequest) 
} 

// MARK: - searchbar delegate 
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 

    let urlStr = "https://" + searchBar.text! 

    let url = NSURL(string: urlStr) 
    let req = NSURLRequest(url:url! as URL) 
    self.webView!.loadRequest(req as URLRequest) 

} 

如果你的web視圖沒有加載網址,並報告:

由於應用傳輸安全性不安全,因此已阻止明文HTTP(http://)資源加載。臨時例外可以通過您的應用程序的Info.plist文件進行配置。

你可以去info.plist打開ATS像下面,或SO搜索找到詳細方法:

enter image description here

+0

謝謝你的工作完美!你是否也知道如何告訴搜索欄在谷歌中搜索是否放入了一些隨機單詞? – user245935

+0

如果是這樣的話,你應該加入google搜索開放sdk什麼的,因爲我在中國,百度開發者網站有一個相似功能,用百度的搜索引擎搜索這個詞,但是我不知道google的這個類型的功能是哪裏,但它應該有。 – aircraft

0

您需要實現UISearchBar的delegate方法並處理所有內容。另外不要忘記將代理設置爲viewcontroller。