2012-12-21 6 views
7

私はjquerymobile/phonegap/cordova(2.0)を使ってモバイルアプリを開発しています。ストリーム(xml)からいくつかのファイルをダウンロードしてローカルに保存しようとしています。この動作は、(リップルを使用して)デバッグに使用するクロムブラウザにのみ表示されます。Phonegap Filetransfer.download Ripple/Chrome

クロームを開始するにはどうすればよいですか?ここに私達は行く:

/アプリケーション/グーグル\ Chrome.app/Contents/MacOS/Google \クローム--disable-ウェブセキュリティ--allow-ファイルアクセス-から-ファイル--allow-ファイル - アクセス

私は次のコードでいくつかの写真をダウンロードしようとした私のplistファイルもまた、アクセス*を持っていると私は私のconfig.xml

<feature name="http://api.phonegap.com/1.0/file"/>を追加しましたマックで開発しています:

function downloadImage(url,filename,use){ 
if(use==="thumb") { 
    filename = filename + ".png"; 
    download(url, filename); 
}return filename; } 

function download(url, filename) { 

//writeLog(window.appRootDir.fullPath); 
ft = new FileTransfer(); 
ft.download(
    url, 
    window.appRootDir.fullPath + "/" + filename, 
    {}, 
    {}); 
} 
シミュレータ上で3210

が正常に動作しますが、クロームで、それが次のエラーで失敗します

我々が欠けているように見える

FileTransfer.download:ダイアログは、メッセージをポップアップ

TypeError 
ripple.js:477 
TypeError: Cannot call method 'download' of undefined 
at n.exports.exec (chrome-extension://geelfhphabnejjhdalkjhgipohgpdnoc/ripple.js:477:26724) 
at FileTransfer.download (http://localhost/~binderf/www/a4/cordova-2.2.0.js:2753:5) 
at download (http://localhost/~binderf/www/a4/js/index.js:194:5) 
at downloadImage (http://localhost/~binderf/www/a4/js/index.js:182:9) 
at Element.<anonymous> (http://localhost/~binderf/www/a4/js/index.js:153:51) 
at Function.p.extend.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:14477) 
at p.fn.p.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:11151) 
at Element.<anonymous> (http://localhost/~binderf/www/a4/js/index.js:145:57) 
at Function.p.extend.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:14477) 
at p.fn.p.each (http://localhost/~binderf/www/a4/js/jquery-1.8.2.min.js:2:11151) ripple.js:477 
FileTransfer 

FileTransfer ripple.js:483 
download ripple.js:483 
missing exec:FileTransfer.download 

いくつかのもの:(

あなたはあなたが望むコールバックにjsonオブジェクトを渡すためにテキストエリアを埋めることができます実行する。

私はその定義されていないが、私は本当に私の問題は何かを把握することはできません。誰かが推測や似たような問題を抱えているなら、どんな提案もお願いします。

答えて

10

Chromeのリップルプラグインがこの機能を実装していないためです。実際の環境(電話など)で動作します。

+1

プラグインは使用できません。 OSと対話したい場合は、実際のデバイスを使用する必要があります。 (iOSシミュレータは非常にうまくいく) –

+1

@ChristianKuetbachはい。しかし、ブラウザウィンドウで実際のデバイスをエミュレートしようとするChrome用の[Ripple](https://chrome.google.com/webstore/detail/ripple-emulator-beta/geelfhphabnejjddjjgghgpdnoc)プラグインを使用しています。 – krtek

+1

私は知っていますが、キーは "実際のデバイスをエミュレートしようとしています"です。このエミュレータは、カスタムプラグインでは決して動作しません。ファイルシステムを使うためには、クロムブラウザをセキュリティポリシーを破棄して起動しなければならないと思う。私はエミュレータ(iOSエミュレータを期待して)を使用して諦め、実際の問題を隠し、エミュレータのみの問題を表示します。 –