我想使用PhoneGap 开发一个FTP 文件系统。
本质上,我希望用户能够拥有他们可以连接的站点列表并获取整个根目录以查看和更改文件名。
我可以使用 C# 和 .NET 语言完成此过程,但不知道如何使用 PhoneGap 实现此目标。
我可以使用特定的图书馆吗?我必须从头开始开发一切吗?是否可以将 Native 与 PhoneGap 混合使用?我将在这里实现什么样的安全性?
如果您能回答这些问题中的一个或全部,我们将不胜感激!
在 android 中实现您想要的一个非常简单的方法是回退到 Native java 代码并使用Apache FTPClient 类。
这里有一个很好的易于阅读的插件。你可以得到它并看看它是如何工作的。基本上它使用 FTP 客户端类,并且它有两个内置方法来处理Upload
文件和Download
来自服务器的文件。
Execute
扩展该方法以执行其他操作也很容易,例如Rename
and 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 插件的说明,这里有一个很好的指南。基本上你需要做以下事情:
特别是对于我在上面发布的插件,在 github 自述文件中,您可以看到有关如何安装该插件的说明。