Cordova --- axios で BLOB ファイルをダウロードする


Platform

  • cordova

Library

Usage

downloadBlob.js
const axios = require('axios');
const downLink = 'your_blob_download_url';
var myFileName = 'myZip.zip';

axios({
    method: 'get',
    url: downLink,
    headers: {
        'Access-Control-Allow-Headers': '*',
        'Access-Control-Allow-Origin': '*'
    },
    responseType: 'arraybuffer'
}).then((response)=>{
    var blob = new Blob([response.data], { type: 'application/zip' }); // *1 type-> MIME Types
    window.resolveLocalFileSystemURL(downloadPath, (fileEntry) => { // *2
        fileEntry.getFile(myFileName, {create: true}, (entry)=>{ //*2
            entry.createWriter((fileWriter)=>{ // *3
                fileWriter.write(blob); // *3
                resolve();
            },(error)=>{
                reject(error);
            });
        });
    });
}).catch((reason)=>{
    reject(reason);
});

Reference

*1 https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
*2 https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/
*3 https://cordova.apache.org/docs/en/2.7.0/cordova/file/filewriter/filewriter.html
axios https://github.com/axios/axios