我想使用PhoneGap开发一个FTP文件系统。
基本上我希望用户能够拥有一个他们可以连接到的站点列表,并获取整个根目录以查看和更改文件名。
我可以使用C#和.NET语言执行此过程,但不了解使用PhoneGap实现此目的。
我可以使用特定的库吗? 我是否必须从头开发一切? 可以将Native与PhoneGap混合使用吗? 我将在这里实现什么样的安全保障?
如果你能回答其中的一个或所有问题,我们非常感谢!
答案 0 :(得分:0)
在android中实现所需内容的一种非常简单的方法是回退到Native 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。基本上你需要做下面的事情:
特别是对于我上面发布的插件,在github自述文件中,您可以看到the instructions on how to install that plugin。