android phonegap 下载器插件 2.2

Posted

技术标签:

【中文标题】android phonegap 下载器插件 2.2【英文标题】:android phonegap downloader plugin 2.2 【发布时间】:2012-11-16 09:42:43 【问题描述】:

我正在开发一个需要 android Downloader 插件的 phonegap 应用程序:https://github.com/phonegap/phonegap-plugins/tree/master/Android/Downloader

不幸的是,使用最新的cordova(2.2)似乎失败了。我花了几个小时尝试升级代码:

下载器.js

cordova.define(
    "cordova/plugin/downloader",
    function(require, exports, module)
    
        var exec = require("cordova/exec");

        var Downloader = function() ;

        Downloader.prototype.downloadFile = function(fileUrl, params, successCallback, failureCallback)
        
            // Make params hash optional.
            if (!failureCallback) win = params;

            return exec(
                successCallback,
                failureCallback,
                'Downloader', 
                'downloadFile',
                [fileUrl, params]);
        ;

        var downloader = new Downloader();
        module.exports = downloader;
    
);

下载器.java

package org.apache.cordova.plugins.Downloader;

import org.apache.cordova.api.CordovaInterface;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
[more imports...]

public class Downloader extends Plugin 

etc.

config.xml

<plugins>
<plugin name="App" value="org.apache.cordova.App"/>
[...]
<plugin name="Downloader" value="org.apache.cordova.plugins.Downloader"/>
</plugins>

html JS 调用

downloader = cordova.require("cordova/plugin/downloader");

downloader.downloadFile(...

该应用程序在 Eclipse 中编译良好,但在执行下载程序代码时我得到:ALERT Class not found。日志猫说:

W/System.err(4035): java.lang.ClassNotFoundException: org.apache.cordova.plugins.Downloader ... 添加插件 org.apache.cordova.plugins.Downloader 时出错。

你能帮我解决问题吗?

【问题讨论】:

您是否尝试过以下建议的链接?? 为什么不使用cordova默认插件docs.phonegap.com/en/2.2.0/cordova_file_file.md.html#File? ***.com/questions/8370060/…,正如你在这里看到的那样,cordova 还有一个名为 plugin.xml 的 xml,你能检查一下那个文件吗? Eclipse,是的。我已经阅读了该文档。 plugins.xml 不再使用,现在配置在 config.xml 中声明。我会尝试默认的文件插件,但我想知道我的文件有什么问题,以了解如何实现其他插件。谢谢。 【参考方案1】:

我在 js 文件中做了一些更改,而不是你做的,一切正常。

function Downloader() 

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

   PhoneGap.addConstructor(function() 
    PhoneGap.addPlugin("downloader", new Downloader());
    PluginManager.addService("Downloader", "com.phonegap.plugins.downloader.Downloader");
);

if(!window.plugins) 
    window.plugins = ;
   
if (!window.plugins.downloader) 
    window.plugins.downloader = new Downloader();

【讨论】:

最后我使用了集成的 Cordova File 对象。我将在下一个项目中尝试您的代码。谢谢。

以上是关于android phonegap 下载器插件 2.2的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Android 的 Phonegap 本地通知插件

是否有适用于cordova phonegap 的视频剪辑器插件?

Android 版 PhoneGap 截图插件

适用于 android 的 Cordova '本机文件选择器'插件不起作用

Phonegap 构建 facebook 连接插件 (android)

Phonegap 文件传输插件导致 Android 构建失败