我对使用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?谷歌政策可以吗?
我可以拦截/捕获用户点击链接并打开本机应用程序视图而不是webview,或者我应该在webview中打开所需页面,然后使用iOS架构URL重定向(使用301代码),这会打开本机应用程序视图(所以真的模拟谷歌点击??
聚苯乙烯。 我知道Google API,但这不适合我。
答案 0 :(得分:2)
UIWebView类似于safari浏览器。
所以,如果你在UIWebView中加载任何URL,那么别担心。 在UIWebView中使用任何网址加载请求与在浏览器中粘贴网址相同,因此无需担心。但是如果你想在UIViewController中打开谷歌广告或者像任何其他控件如标签(例如你在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中进行货币交易(可能因为APPLE的应用程序内购买政策)
答案 1 :(得分:2)
Google的自定义搜索服务条款(TOS)可在http://www.google.com/cse/docs/tos.html找到。我建议彻底阅读这些内容。特别是我复制的第1.3节(截至2013年3月17日):
1.3您的义务。您将收到最终用户的查询,并将该查询转发给Google。你可能没有任何框架, 缓存或修改Google生成的结果,除非另有说明 同意你和谷歌。 Google不负责 从最终用户接收查询或在两者之间传输数据 你和Google的网络界面。你应该对此负责 提供执行您的所有必需的硬件和软件 使用条款规定的义务,包括但不限于 以下:(a)实施和维护本网站,(b)实施 并维护站点和服务之间的接口,以及 (c)从最终用户接收查询并将查询发送到 谷歌。
我不是律师,但“除非您与Google之间另有约定,否则您不得以任何方式构建,缓存或修改Google产生的结果。”在你的情况下看起来很重要。
除非您为Google Site Search付款,否则无法在不显示广告的情况下显示结果。
答案 2 :(得分:1)
来自Google目前的Terms of Service:
使用我们的服务
您必须遵守我们提供给您的任何政策 服务。
请勿滥用我们的服务。例如,不要干涉我们的 服务或尝试使用接口以外的方法访问它们 以及我们提供的说明。
对我来说,这有点可疑。无论是以编程方式构建的URL加载搜索结果是否使用他们提供的界面都是有争议的,但在我的解释中,似乎没问题,只要您在UIWebView
中加载请求即可。如果你以某种方式解析html以不同的方式呈现结果,例如UITableView
,那么我认为它越过了这条线。
我正在开发一个应用程序,我会尝试与您尝试做的事情非常类似。我在UIWebView
中显示搜索结果,如果用户点击了某个链接,则会在另一个UIWebView
的{{1}}中打开该搜索结果。但是我使用了不同的搜索引擎,我可以事先询问它们,并且他们同意它没问题。