在离子iOS中打开本地文件

时间:2016-09-29 07:27:24

标签: ios cordova ionic-framework

我正在尝试在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)) });
        };
  • 警报(文件路径); *返回:file:///var/containers/Bundle/Application/xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx/NAME.app/www/pdf/name.pdf

我不知道它失败了。我不会打开任何东西。

EDIT2: 我确实遇到了FileTransfer错误。 “

  

无法创建保存已下载文件的路径。

0 个答案:

没有答案