在Android设备上使用FileTransfer插件Phonegap保存PDF
Where to save a PDF on Android device using FileTransfer plugin Phonegap
我试图在我的phonegap应用程序中下载PDF,然后立即打开它,但我得到一个文件未找到错误。它似乎可以下载。下面是我的代码:
// Download
var url = "https://example/example.pdf";
var fileTransfer = new FileTransfer();
var uri = encodeURI(url);
var fileURL = 'cdvfile://localhost/persistent/com.mycompany.myApp/';
var fileName = 'example.pdf';
fileTransfer.download(
uri,
fileURL,
function (entry) {
alert("download complete: " + entry.fullPath);
// Open
cordova.plugins.fileOpener2.open(
fileURL + fileName,
'application/pdf',
{
error: function (errorObj) {
alert('Error status: ' + errorObj.status + ' - Error message: ' + errorObj.message + ' ' + errorObj.fileURL);
},
success: function () {
alert('file opened successfully');
}
}
);
},
function (error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
}
);
alert('Downloading...');
我也想知道在哪里保存这样的文件最好的地方,应该是应用程序关闭后可用?
fileTransfer的第二个参数。下载是要下载PDF文件的设备位置。您正在设置var fileURL = 'cdvfile://localhost/persistent/com.mycompany.myApp/';我相信这是不存在的。你可以使用文件系统插件首先获得文件在你的设备上的位置,然后保存在设备上。您可以使用下面的代码快照。
var url = "https://example/example.pdf";
var uri = encodeURI(url);
//var fileURL = 'cdvfile://localhost/persistent/com.mycompany.myApp/';
// var fileName = 'example.pdf';
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
function gotFS(fileSystem) {
fileSystem.root.getDirectory("Dir_NAME", {
create: true,
exclusive: false
}, gotDirectory, fail);
}
function gotDirectory(entry) {
entry.getFile('yourFileNAme', {
create: true,
exclusive: false
}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
filePath = fileEntry.fullPath;
var fileTransfer = new FileTransfer();
fileTransfer.download(
'uri', filePath, function(entry) {
console.log("success");
//perform you launch task
}, function(error) {
console.log("error");
}, true, {});
}
希望对你有帮助。
即使我是新的android,但我认为有问题在URI
要在android中打开一个Uri,它应该有这样的结构文件:///存储/……(应该有3个反斜杠)
你可以在这里获得更多细节
保存pdf文件的最佳位置是你的存储卡或内部存储器。然后,即使在应用程序关闭后,pdf也可以在您的设备中使用。
如果你希望有相同的pdf文件,在不同的设备上可用,同时在不同的设备上测试你的应用程序/甚至在模拟器中,你可以把它保存在你的android项目的assert文件夹。
希望能有所帮助
相关文章:
- 如何在Angular2中使用jQuery插件
- 可以前端maven插件使用节点,npm已经安装
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 压缩phonegap中ios的图像插件
- jQuery粘性插件可变顶部间距
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 高亮显示与数组字符串一起使用时文本插件中断
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Wordpress插件根据需要加载js和css
- jQuery Wan Spinner插件的多个字段
- jQuery Facebox插件:关注弹出的外观
- 使用filetransfer/cordova插件上传一些文件
- Cordova FileTransfer插件参数在Android上为空
- 在Android设备上使用FileTransfer插件Phonegap保存PDF