1
$(document).ready(function() {
window.plugins.downloader.downloadFile("http://some_path/images/image1.jpg", {overwrite: true}, 
      function(res) {
        alert(JSON.stringify(result));
    }, function(error) {
        alert(error);
    }
); });

エラー:- Uncaught TypeError: ファイル:///android_asset/www/index.html:11 で未定義のプロパティ 'downloader' を読み取れません

私は正しいjsファイルを含めましたが、適切な順序でまだこのエラーが発生しています...

PhoneGap へのすべての呼び出しを cordova に置き換えてみましたが、それでも同じエラーが発生します。

cordova.addConstructor(function() {
cordova.addPlugin("Downloader", new Downloader());
//window.plugins.Downloader = new Downloader();
//PluginManager.addService("Downloader", "com.phonegap.plugins.downloader.Downloader"); 
});
4

2 に答える 2

4

LogCat のログをよく見ると、「downloader.js」ファイルにエラーがあることがわかります。古いバージョンの phonegap 用に作成されています。あなたと同じ問題を解決する方法をたくさん探していましたが、ここに投稿された質問しか見つかりませんでした。要するに、スクリプト ファイルの構文を修正する必要があるということです。それらのばかは、下位互換性を気にせずに構文全体を変更しました:(

コードを機能させるには、downloader.js コードを次のように置き換えます。

/* downloader.js */
function Downloader() {}
    Downloader.prototype.downloadFile = function(fileUrl, params, win, fail) {

    //Make params hash optional.
    if (!fail) win = params;
       cordova.exec(win, fail, "Downloader", "downloadFile", [fileUrl, params]);
};

if(!window.plugins) {
    window.plugins = {};
}
if (!window.plugins.Downloader) {
    window.plugins.Downloader = new Downloader();
}

次に、呼び出しは次のようになります。

window.plugins.Downloader.downloadFile(url, {dirName: contentDirectory, fileName: someFileName, overwrite: true},
             function(data){
                 if(data=="exist"){
                  /// alert("File already exist");
                     console.log("File allready exist!");
                 }
                 else{
                     console.log("Status: " + data.status);
                 }
             },
             function(data){
                 console.log("error: "+data); 
             }
     );
于 2012-11-01T22:36:54.667 に答える