2013-10-05 34 views
2

我最近做了一個搜索欄,用於搜索Google上的用戶輸入,而不是顯示我希望它自動顯示第一個搜索結果的Google搜索結果。下面是代碼我目前有:如何在webView中自動顯示第一個谷歌搜索結果?

-(IBAction)searchInfo: (id)sender { 
NSString *query = [googleBar.text stringByReplacingOccurrencesOfString:@" " withString:@"+"]; 
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.co.uk/search?q=%@" , query]]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:request]; 
    [textField resignFirstResponder];} 

通過此代碼,用戶的文本輸入我的搜索欄來搜索在谷歌,但我現在希望它自動顯示在谷歌出現的第一個結果。 這個問題的第二部分是我如何添加一個算法,它不僅僅選擇了第一個結果,而是選擇了一個特定的搜索結果並將它顯示在webView上,那麼算法是什麼類型? 在此先感謝!

回答

0

看着谷歌搜索結果項目錨元素可以很容易地選擇。每個單獨的搜索結果都分組在li類名稱的元素'g'然後在裏面有你想要點擊的鏈接。

因此,選擇第一個可點擊的元素很容易通過JavaScript來實現;

NSString *javascriptString = @"document.getElementsByClassName('g')[0].getElementsByTagName('a')[0].click()"; 

然後單擊您只需執行上面的字符串到一個UIWebView作爲元素;

[webView – stringByEvaluatingJavaScriptFromString: javascriptString]; 

一旦WebView完成加載請求,您就想執行此代碼。因此,實施webview委託,一旦搜索結果請求加載,執行上面的代碼。

+0

非常感謝你我的回答很多,但是當我在鍵盤上使用「搜索」按鈕時,它仍然顯示來自Google的搜索,我將如何使它與我的'searchInfo'按鈕做同樣的事情並去自動直接獲得第一個結果。謝謝 – user2829550

+0

此外,它非常奇怪,但有時'searchInfo'按鈕顯示來自Google的搜索結果,並沒有進入第一個結果,但是同樣有時它實現了代碼並轉到第一個結果,我做錯了什麼? :( – user2829550

相關問題