我正在尝试在iOS上打开一个已存在的.pdf文件[我可以看到iBooks中的文件]。 我使用Ionic和file-opener2 Cordova plugin - 我使用最新版本的Cordova和插件。
这是在Android上完美运行的代码:
$scope.openPDF = function() {
alert("OK");
$cordovaFileOpener2.open(
'/storage/emulated/0/Download/pdf/name.pdf', // Any system location, you CAN'T use your appliaction assets folder
'application/pdf'
).then(function() {
console.log('Success');
}, function(err) {
console.log('An error occurred: ' + JSON.stringify(err));
});
};
是的,我想成为一个本地文件,而不必下载它,这是一个展示应用程序,将没有互联网连接将在一天运行。因此文件必须本地。
我不知道如何在Android中打开文件路径。在 iOS 9.3.3 。,iPad Pro上运行。此外,该设备没有被囚禁。
修改 好吧,现在我正在尝试将文件从应用程序的文件夹移动到另一个文件夹,所以我可以从那里打开它。同样,所有代码都适用于Android。
function openPDF(uri) {
var filePath = cordova.file.applicationDirectory + 'www/pdf/fichas/name.pdf';
alert(filePath);
window.resolveLocalFileSystemURL(filePath, function(entry) {
var fileTransfer = new FileTransfer();
var targetFile = cordova.file.externalDataDirectory + entry.name;
fileTransfer.download(
entry.toURL(),
targetFile,
function(entry) {
console.log("download complete: " + entry.toURL());
console.log("targetFile: " + targetFile);
cordova.plugins.fileOpener2.open(
targetFile,
'application/pdf',
{
error : function(error){ alert('open error ' + JSON.stringify(error)) },
success : function(){ }
}
);
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
}
);
}, function(error){ alert('error resolveLocalFileSystemURI ' + JSON.stringify(error)) });
};
我不知道它失败了。我不会打开任何东西。
EDIT2: 我确实遇到了FileTransfer错误。 “
无法创建保存已下载文件的路径。