13

我对使用 Google 搜索有疑问。我可以在我的原生 iOS 应用程序中使用自定义谷歌搜索而不是使用他们的 api 工具,这对谷歌来说是个问题吗?

我写html页面(http://barzyczak.vot.pl/search.html?q=test):

<!DOCTYPE html>
<html>
    <head>
        <title>Element V2: Results Only Layout Demo</title>

        <!-- Put the following javascript before the closing </head> tag. -->
        <script>
            (function() {
             var cx = 'xyz';
             var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
             gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
             '//www.google.com/cse/cse.js?cx=' + cx;
             var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
             })();
            </script>
    </head>

    <body>
        <!-- Place this tag where you want the search results to render -->
        <gcse:searchresults-only enableOrderBy="false"></gcse:searchresults-only>
    </body>

我确实在我的 iOS 应用程序中请求包含上述内容的站点并收到结果。我在 UIWebView 中显示了这个结果:

在此处输入图像描述

那么我可以使用吗

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationTyp

并将用户重定向到我的 UIViewController?这适用于 Google 政策吗?

我可以拦截/捕获用户对链接的点击并打开本机应用程序视图而不是 webview 还是应该在 webview 中打开所需的页面,然后使用 iOS 架构 URL 重定向(使用 301 代码)打开本机应用程序视图(所以真的模拟点击在谷歌)?

附言。我知道 Google API,但这对我来说不行。

4

3 回答 3

2

UIWebView 类似于 safari 浏览器。

因此,如果您在 UIWebView 中加载任何 URL,请不要担心。在 UIWebView 中使用任何 url 加载请求与在浏览器中粘贴 url 相同,因此无需担心。但是,如果您想在 UIViewController 或任何其他控件(如标签)中打开 google 的广告(例如,您在 UILabel 或 UITextView 上显示广告),那么政策应该有问题。

我不太确定谷歌的政策,但如果你只使用 UIWebView 那就不用担心了。前进.........

对于谷歌搜索,我使用了一个您可以尝试的网址......

    NSString * urlString = [NSString stringWithFormat:@"https://www.google.co.in/webhp#hl=en&sugexp=les%%3B&gs_nf=1&tok=LZGxyqNyXgb5XCemHei1Fg&cp=4&gs_id=g&xhr=t&q=%@", self.txtSearch.text];
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];

希望这篇文章对你有所帮助............

祝你编码愉快…………

编辑:-您不能在 WEBVIEW 中进行货币交易(可能是因为苹果的应用内购买政策)

于 2013-03-15T08:52:43.637 回答
2

可在http://www.google.com/cse/docs/tos.html找到 Google 的自定义搜索服务条款 (TOS) 。我建议彻底阅读这些内容。特别是我复制的第 1.3 节(截至 2013 年 3 月 17 日):

1.3 您的义务。您将收到来自最终用户的查询并将该查询转发给 Google。除非您与 Google 另有约定,否则您不得以任何方式构建、缓存或修改 Google 产生的结果。Google 将不负责接收来自最终用户的查询或在您和 Google 的网络接口之间传输数据。您应负责提供履行您在使用条款下的义务所需的所有硬件和软件,包括但不限于以下内容:(a) 实施和维护本网站,(b) 实施和维护本网站与服务,以及 (c) 接收来自最终用户的查询并将查询传输给 Google。

我不是律师,但“除非您与 Google 另有约定,否则您不得以任何方式构建、缓存或修改 Google 生成的结果。” 在您的情况下似乎很重要。

除非您为Google Site Search付费,否则您无法在不显示广告的情况下显示结果。

于 2013-03-17T13:56:19.953 回答
1

来自谷歌当前的服务条款

使用我们的服务

您必须遵守服务中向您提供的任何政策。

不要滥用我们的服务。例如,不要干扰我们的服务或尝试使用我们提供的界面和说明以外的方法访问它们。

对我来说,这有点可疑。从您以编程方式构建的 URL 加载搜索结果是否使用它们提供的接口是有争议的,但在我的解释中,似乎没问题,只要您将请求加载到UIWebView. 如果您以某种方式解析 html 以以不同的方式呈现结果,UITableView例如,那么我认为它越界了。

我正在开发一个应用程序,我在其中做的事情与您尝试做的事情非常相似。我在 a 中显示搜索结果UIWebView,如果用户单击一个链接,它会在 aUIWebView中打开ViewController。但我使用不同的搜索引擎,我选择事先询问他们,他们同意没关系。

于 2013-03-15T19:25:55.450 回答