2

私のionicアプリケーションでインターネット/サーバーからファイルをダウンロードしたいと考えています。私はファイル転送プラグインを使用して同じものを達成しようとしていますが、ファイルがダウンロードされていません。FileTransferでCordovaとIonicでファイルをダウンロードできません

プラグインから成功コールバックを取得しましたが、fileOpener2プラグインからファイルを開こうとすると、ファイルが存在しないというエラーが表示されます。私はファイルのための私の携帯電話のストレージのすべてをチェックしたが、それは発見されていません。 PFB私が使用したコード:私は、パラメータとしてentry.toInternalURLを与える場合は$ cordovaFileOpener2.openで

var fileTransfer = new FileTransfer(); 

var imguri = "http://cdn.wall-pix.net/albums/art-space/00030109.jpg"; 
var targetPath = cordova.file.dataDirectory + "testImage.jpg"; 
fileTransfer.download(
imguri, 
targetPath, 
function(entry) { 
    console.log("download complete - Internal URL: " + entry.toInternalURL()); 
    console.log("download complete - Full Path: " + entry.fullPath); 

          $cordovaFileOpener2.open(entry.fullPath, 'image/jpeg').then(function() { 
         // file opened successfully 
         console.log("File opened successfully!"); 
        }, function(err) { 
         // An error occurred. Show a message to the user 
         console.log(JSON.stringify(err)); 
        }); 



}, 
function(error) { 
    console.log("download error source " + error.source); 
    console.log("download error target " + error.target); 
    console.log("download error code" + error.code); 
}, 
false, 
{ 
    headers: { 
     "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" 
    } 
} 
); 

は、私はこのエラーを取得する - >は/data/data/com.echidnaが含まれて構成されたルートが見つかりませんでした。私がこのコードを入力すると、このエラーが発生します。 - > {"status":9、 "message": "File not found"}

私のファイルマネージャーから、testImage.jpgファイルを検索しましたが、ファイルが見つかりませんでした。これはファイルが最初にダウンロードされなかったことを意味するはずですが、成功コールバックがどのようにトリガされるのでしょうか?

答えて

1

Android 6.0以降のアプリで必要な新しいユーザー権限が問題のようです。ファイルプラグインは、ユーザーにストレージアクセスを要求しません。これは、アプリケーションによって最初に要求され、別のプラグインで処理できる必要があります。これにはいくつかのプラグインがありますが、私はhttps://github.com/NeoLSN/cordova-plugin-android-permissionを使用しています。

ダウンロードする前に、ストレージに書き込み権限があるかどうかを確認してください。そうでない場合は、アクセス権を要求します(アクセス権の確認と要求は、上記のリンクのプラグインで処理されます)。あなたがアクセスした後、あなたが望むファイルをダウンロードしてください!

乾杯!

0

代わりにプライベートとしてファイルを保存し、許可されていません

file.dataDirectory 

のファイルマネージャは、パブリックとして、それが

使用

file.externalDataDirectory 

ストアファイルを読み、他のことができますしますアプリを開くには

外部DataDirectoと混同しないでくださいあなたのデバイスの内部メモリのみを使用する(SDカード)

関連する問題