1

我在浏览器中运行谷歌自定义搜索它工作正常。即使在Phonegap的模拟器中也可以正常运行,但会出现网络错误或在Android手机上运行时显示空白屏幕。或给出此错误“file:///google.com/cse?q=.... 找不到。”

我正在使用谷歌自定义搜索 v2 代码。

4

2 回答 2

0

您获得的自定义搜索 v2 的代码如下所示:

<script>
  (function() {
    var cx = 'ENGINE_ID';
    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>
<gcse:search></gcse:search>

它大致做的是创建一个这样的标签:

<script type="text/javascript" src="http://www.google.com/cse/cse.js?cx=ENGINE_ID">

并将其插入页面上的其他脚本之前。因此,您可以完全跳过此代码并手动将上述标记(使用您的引擎 ID)插入<gcse:search></gcse:search>到您的 HTML 中。如果仍然无法从 file:// 连接到 http://,请下载此脚本 ( http://www.google.com/cse/cse.js?cx=ENGINE_ID ) 并将其作为本地 javascript 文件提供。

于 2013-11-06T07:56:04.103 回答
0

我遇到了同样的问题。JavaScript 中的一行更改使 file:// 错误消失:

// This line must take place before initializing GCSE
window.IS_GOOGLE_AFS_IFRAME_ = true;

在 iOS 和 Android Cordova 环境中均经过验证。

于 2014-01-28T01:12:21.633 回答