2017-01-21 34 views
0

私は簡単なWebブラウザを構築しようとしています。ウェブブラウザ自体はうまくいきますが、検索バーのURLを検索しようとすると、キーボードでウェブサイトを開くことができません。これをどうすれば解決できますか?検索バー&ウェブビュー

@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:

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の場合はその結果、WebViewのは、あなたが検索バーに入力したURLを読み込みますURLをロードせず、次のように報告します。

App Transport Securityは安全でないため、クリアテキストHTTP(http://)リソースの読み込みをブロックしました。一時的な例外は、アプリのInfo.plistファイルで設定できます。

あなたは以下のようにATSを開く、またはSO詳細方法を見つけるために検索するinfo.plistに行くことができます:あなたは、検索を押したとき

enter image description here

+0

それは完璧に働いてくれてありがとう!あなたはまた、いくつかのランダムな言葉が入っている場合、検索バーにGoogleで検索するように指示する方法を知っていますか? – user245935

+0

これは、私は中国では、baiduの開発者のウェブサイトが類似機能を持っているので、あなたはGoogle検索のオープンsdkや何かに参加する必要があります、baiduの検索エンジンを使用して単語を検索するが、私はGoogleのこのタイプの機能を知らないどこに、しかしそれは持っているべきです。 – aircraft

0

UISearchBarにはdelegateのメソッドを実装し、そこからすべてを処理する必要があります。デリゲートをviewcontrollerに設定することも忘れないでください。