在 android 中实现您想要的一个非常简单的方法是回退到本机 java 代码并使用 Apache FTPClient class。
有一个很好的易读插件here。你可以得到它并看看它是如何工作的。基本上它使用 FTP 客户端类,并且它有两个内置的方法来Upload 一个文件和Download 从服务器的一个文件。
再次扩展Execute 方法以执行其他操作(如Rename 和Delete)非常容易:
Java 代码:
public boolean execute (...) {
...
if (action.equals("get")) {
get(filename, url);
}
else if (action.equals("put")) {
put(filename, url);
}
else if (action.equals("delete")){
delete(filename,url);
} else if (action.equals("rename")){
rename(filename,url);
}
...
}
private void delete(String filename, URL url) throws IOException {
FTPClient f = setup(url);
f.deleteFile(extractFileName(url));
teardown(f);
}
private void rename(String newFilename, URL url) throws IOException {
FTPClient f = setup(url);
f.rename(extractFileName(url),newFilename);
buffOut.flush();
buffOut.close();
teardown(f);
}
并将这些方法也添加到 javascript 层
FtpClient.prototype.delete = function(url, successCallback, errorCallback) {
return exec(successCallback, errorCallback, "FtpClient", "get", [" ", url]);
};
FtpClient.prototype.rename = function(newFilename, url, successCallback, errorCallback) {
return exec(successCallback, errorCallback, "FtpClient", "get", [newFilename, url]);
};
如果您需要有关如何使用 phonegap 插件的说明,有一个很好的指南 here。基本上你需要做以下事情:
- 编写你的java代码
- 编写你的javascript代码并使用exec方法调用native层
- 将插件添加到 res/xml/config
专门针对我上面贴的插件,在github自述文件中可以看到the instructions on how to install that plugin。