【问题标题】:Downloading a pdf blob to device in Cordova Android App在 Cordova Android 应用程序中将 pdf blob 下载到设备
【发布时间】:2016-11-18 23:47:22
【问题描述】:

我正在开发一个程序,我想在 android 设备中保存一个 pdf blob。 这是回调中的服务器端代码,它接收 pdf 数据作为“结果”。

var file = new Blob([result.data], {
          type: 'application/pdf;charset=utf-8;'
        }); 
        return file;
      });

在客户端,以下代码在chrome调试浏览器中运行,pdf下载成功。但是在设备上我收到以下错误:

 11-18 18:13:27.255 10504-10707/? D/FileTransfer: download blob:file:///e9088aac-8525-4071-9280-164a6e15c22e to file:///storage/emulated/0/Download/loanContract_11-10-2016_9-29-59-715.pdf
 11-18 18:13:27.255 10504-10707/? E/FileTransfer: Unsupported URI: blob:file:///e9088aac-8525-4071-9280-164a6e15c22e

这里window.URL.createObjectURL(data)中的数据是服务器返回的文件blob。 Phonegap/Cordova 3.6 - Download of file through blob:file 没有帮助我解决问题。

var fileURL = window.URL.createObjectURL(data);
                    $scope.content = data;
                    a.href = fileURL;
                    a.download = fileName;
                    a.click();
                    console.log("Inside parent function");
                    $scope.fileName = fileName;

window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (dirEntry) {                   
                download($scope.fileURL, dirEntry.toURL()+'Download/'+ $scope.fileName) ;
             }, function () {} );


  var download = function ( uri, fileURL) {
        $cordovaFileTransfer.download(
            uri,
            fileURL,
            function (success) {
                console.log(success);
            },
            function (err) {
                console.log(err);
            }, true)
    };

如果我提供一个将 pdf 文件作为 HTTP 响应发送的 url,并且我将 API 的 URL 作为参数 uri 提供给 cordovaFileTransfer.download,那么 pdf 将被保存。 请帮我将此鲍勃保存为设备上的 pdf。

【问题讨论】:

    标签: android cordova


    【解决方案1】:

    首先,通过requesting the file system 获取文件,然后使用fileTransfer.download() 从您的服务器下载它。完成下载后,调用 FileOpener(它将打开一个弹出窗口,您可以在其中选择 Adob​​e Reader 等应用程序)。注意:确保通过 CLI/Terminal 包含 FileTransfer 功能:

    cordova plugin add cordova-plugin-file --save
    
    • 导航到您的项目文件夹

    • 打开 CLI/终端并输入:

      cordova 插件添加 https://github.com/don/FileOpener.git

    • 在设备上成功下载并存储文件后(请参阅 上面)你打开它: window.plugins.fileOpener.open("file:///sdcard/Android/data/com.example.application/document.doc") 或 iOS 上的相应路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-30
      • 2018-10-07
      • 2014-09-04
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多