2016-11-18 1 views
2

나는 안드로이드 장치에 pdf BLOB를 저장하고 싶은 프로그램을 만들고 있습니다. 이것은 '결과'로 pdf 데이터를받는 콜백 내부의 서버 측 코드입니다.Cordova 안드로이드 앱에서 장치에 blob을 다운로드하기

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

클라이언트 측에서 다음 코드는 크롬 디버깅 브라우저에서 작동하며 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 (데이터)의 서버에 의해 반환 된 파일 BLOB 인 : 그러나 장치에서 나는 다음과 같은 오류가 발생합니다. Phonegap/Cordova 3.6 - Download of file through blob:file 문제를 푸는데 도움이되지 못했습니다. 내가 HTTP 응답으로 pdf 파일을 전송하는 URL을주고 내가 cordovaFileTransfer.download에 매개 변수 URI로 API의 URL을 제공하는 경우

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 파일이 저장됩니다. 이 밥을 기기에 PDF로 저장하는 것을 도와주세요.

답변

0

먼저 파일을 requesting the file system으로 가져온 다음 fileTransfer.download()으로 서버에서 다운로드하십시오. 다운로드를 완료 한 후 FileOpener를 호출하십시오 (Adobe Reader와 같은 응용 프로그램에서 선택할 수있는 팝업이 열립니다). 참고 :

cordova plugin add cordova-plugin-file --save 
프로젝트 폴더

  • 열기 CLI/터미널

    • 탐색 및 입력 :

      코르도바 플러그인 를 추가 CLI/터미널을 통해 FileTransfer 기능을 포함해야합니다 https://github.com/don/FileOpener.git

    • 파일을 성공적으로 다운로드하여 장치에 저장 한 후 (참조) 위의)를 열고 다음과 같이 엽니 다. window.plugins.fileOpener.open ("file : ///sdcard/Android/data/com.example.application/document.doc") 또는 iOS의 적절한 경로.

  • 관련 문제