【发布时间】: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? stackoverflow.com/questions/8370060/…,正如你在这里看到的那样,cordova 还有一个名为 plugin.xml 的 xml,你能检查一下那个文件吗?
-
Eclipse,是的。我已经阅读了该文档。 plugins.xml 不再使用,现在配置在 config.xml 中声明。我会尝试默认的文件插件,但我想知道我的文件有什么问题,以了解如何实现其他插件。谢谢。