2017-01-21 10 views
0

Я пытаюсь создать простой веб-браузер. Сам веб-браузер работает очень хорошо, но когда я пытаюсь найти URL-адрес в строке поиска, я не могу вернуться на клавиатуру, чтобы открыть веб-сайт. Как я могу это исправить?Search Bar & Web View

@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

Шаг 2: Введите в URL вы хотите получить доступ.

enter image description here

Шаг 3: результат, то WebView загрузить URL вы ввели в SearchBar:

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) 

} 

Если WebView не загружался, и отчет:

Приложение Transport Security заблокировало загрузку ресурсов HTTP (http: //) с открытым текстом, поскольку это небезопасно. Временные исключения могут быть настроены через файл Info.plist вашего приложения.

Вы можете пойти в info.plist открыть АТС, как показано ниже, или поиск С.О., чтобы найти метод подробно:

enter image description here

+0

Спасибо, что сработало отлично! Вы также знаете, как определить строку поиска для поиска в google, если только некоторые случайные слова введены? – user245935

+0

Если это, вы должны присоединиться к поиску google open sdk или что-то еще, потому что я в Китае, сайт разработчика baidu имеет функцию сходства, поиск слова с помощью поисковой системы baidu, но я не знаю, что функция этого типа google где, но это должно быть. – aircraft

0

Вы должны реализовать delegate методы UISearchBar и обрабатывать все оттуда. Также не забудьте установить делегат в viewcontroller.