Android 来自phonegap的Google自定义搜索问题

Android 来自phonegap的Google自定义搜索问题,android,cordova,google-custom-search,Android,Cordova,Google Custom Search,我正在尝试创建一个PhoneGap应用程序,它在某种程度上提供了一个定制的搜索引擎。我按照Google的说明创建了以下HTML文件,当作为用户访问时,它在桌面浏览器中运行良好file:///text.html. 当我使用它作为电话间隔起始页时,它呈现良好。有一个文本框和“搜索”按钮。然而,当我按下“搜索”键时,我在Android设备上看到一个“应用程序错误”,上面写着“file:///google.com/cse?q=.... 找不到。” CustomSearchControl向页面中注入一些代

我正在尝试创建一个PhoneGap应用程序,它在某种程度上提供了一个定制的搜索引擎。我按照Google的说明创建了以下HTML文件,当作为用户访问时,它在桌面浏览器中运行良好file:///text.html. 当我使用它作为电话间隔起始页时,它呈现良好。有一个文本框和“搜索”按钮。然而,当我按下“搜索”键时,我在Android设备上看到一个“应用程序错误”,上面写着“file:///google.com/cse?q=.... 找不到。”

CustomSearchControl向页面中注入一些代码——基本上是一个表单。我想我可能能够在“cse”元素处操纵DOM来修复URL方案,但我没有看到带有Firebug的google.com URL

寻找解决问题或解决问题的方法。以下是html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Search API Sample</title>
    <script src="https://www.google.com/jsapi?INSERT-YOUR-KEY"></script>
    <script type="text/javascript">
        google.load('search', '1');
        google.setOnLoadCallback(function(){
          var search = new google.search.CustomSearchControl('007447616601297022092:7nhsxzpy6ao').draw('cse');
        }, true);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="cse" style="width:100%;">Loading...</div>
  </body>
</html>

GoogleAjax搜索API示例
load('search','1');
setOnLoadCallback(函数(){
var search=new google.search.CustomSearchControl('007447616601297022092:7nhsxzpy6ao').draw('cse');
},对);
加载。。。

经过多次尝试,我终于找到了解决办法

虽然我不确定,但我相信问题的根源在于谷歌脚本看到它是从设备的本地文件系统运行的,它错误地试图将表单提交到file:///.

我在PhoneGap上使用Sencha Touch。我想我可以使用一些dom和组件访问函数来操作submit事件。然而,谷歌的JS在被缩短后几乎无法穿透。即使在非私有化之后,您也有类似aob的代码。天哪

所以我只是在Sencha应用程序中使用了一个iframe,将上面问题中显示的脚本拉到设备上。一些来自康纳·阿姆斯特朗(Conor Armstrong)的人非常有助于在Sencha Touch中让一切顺利进行