2011-07-13 2 views
1

私は部分的にカスタム検索エンジンを利用できるPhoneGapアプリケーションを作成しようとしています。私はGoogleの指示に従い、file:///text.htmlとしてアクセスすると、デスクトップブラウザでうまく動作する次のHTMLファイルを作成しました。私は電話のギャップの開始ページとしてそれを使用すると、それはうまくレンダリングします。テキストボックスと「検索」ボタンがあります。しかし、「検索」を押すと、Androidデバイス上で「file:///google.com/cse?q = ....」が見つかりませんという「アプリケーションエラー」が表示されます。phonegapからのGoogleカスタム検索の問題

CustomSearchControlはページに基本的にあるコードを挿入します。私はURLスキームを修正するために 'cse'要素でDOMを操作することができるかもしれませんが、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> 

答えて

0

私はよく分からないけど、私は問題の根があることであると信じて...

多くのものを試した後、このための回避策を見つけることができましたGoogleスクリプトはデバイスのローカルファイルシステムから実行されていると見て、間違ってフォームをfile:///に送信しようとします。

私はPhoneGapの上にSencha Touchを使用しています。私は、DOMとコンポーネントのアクセス関数のいくつかを使用して、サブミットイベントを操作することができると考えました。しかし、GoogleのJSは、それが短縮された後、ほとんど不可解です。解体後も、あなたはaobのようなコードを持っています。ああ、神様。

私はちょうどpunched、Senchaアプリ内のiframeを使用して、上記の質問に示すスクリプトをデバイスにプルダウンします。 Conor Armstrongのcodeの一部は、Sencha Touchでうまく動作するように非常に役立ちました。

関連する問題