【问题标题】:How to automatically display first google search result in webView?如何在 webView 中自动显示第一个谷歌搜索结果?
【发布时间】:2013-10-05 15:26:21
【问题描述】:

我最近制作了一个搜索栏,用于搜索用户在 Google 上输入的内容,现在我希望它自动显示第一个搜索结果,而不是显示 Google 搜索结果。这是我目前拥有的代码:

-(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];}

此代码允许在 Google 上搜索用户在我的搜索栏中输入的文本,但我现在希望它自动显示出现在 Google 上的第一个结果。 我的这个问题的第二部分是如何添加一个算法,它不仅选择第一个结果,而且选择特定的搜索结果并将其显示在 webView 上,那是什么类型的算法? 提前谢谢!!!

【问题讨论】:

    标签: ios objective-c uiwebview


    【解决方案1】:

    查看 google 搜索结果可以轻松选择项目锚元素。每个单独的搜索结果都分组在类名 'g'li 元素中,然后在其中有您要单击的链接。

    所以,通过 javascript 选择第一个可点击元素很容易;

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

    然后单击元素,您只需将上述字符串执行到 UIWebview 中即可;

     [webView – stringByEvaluatingJavaScriptFromString: javascriptString];
    

    您可能希望在 WebView 完成加载请求后执行此代码。所以,实现 webview 委托,一旦搜索结果请求加载,执行上面的代码。

    【讨论】:

    • 非常感谢我非常感谢您的回答,但是当我使用键盘上的“搜索”按钮时,它仍然显示来自 Google 的搜索,我将如何让它做与我的一样的事情? searchInfo' 按钮并自动直接转到第一个结果。谢谢
    • 另外,它非常奇怪,但有时“searchInfo”按钮会显示来自 Google 的搜索结果并且不会转到第一个结果,但有时它会执行代码并转到第一个结果,我做错什么了吗? :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2014-10-31
    相关资源
    最近更新 更多