javascript - 如何从 Cordova 应用程序中的字节数组下载任何文件?

标签 javascript cordova ionic-framework cordova-plugins

我有一个 cordova - ionic 应用程序。 我想从网络服务下载一个文件,该文件可以是任何类型(JPG、PDG、DOCX 等)。我无法从直接 URL 下载文件。所以应用程序从 Web 服务获取文件的字节数组。

任何人都知道如何从字节数组下载移动文件。请帮助我。

最佳答案

你可以使用 Cordova 插件文件和 cordova-plugin-file-opener2 插件。

https://github.com/apache/cordova-plugin-file

https://github.com/pwlin/cordova-plugin-file-opener2

在 web 服务的功能中,您的代码应该如下所示:

var bytes = new Uint8Array(data.d);
app.writePDFToFile(fileName.split(fileName.split, bytes);

这是强制下载的函数:

writePDFToFile: function (fileName, data) {

try {
    window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory, function (directoryEntry) {
        directoryEntry.getFile(fileName, { create: true }, function (fileEntry) {

            fileEntry.createWriter(function (fileWriter) {
                fileWriter.onwriteend = function (e) {

                    //window.open(cordova.file.externalApplicationStorageDirectory + fileName, '_system', 'location=yes');

                    cordova.plugins.fileOpener2.open(cordova.file.externalApplicationStorageDirectory + fileName, 'application/pdf',
                        {
                            error: function (e) {
                                console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
                            },
                            success: function () {
                                console.log('file opened successfully');
                            }
                        }
                    );
                };

                fileWriter.onerror = function (e) {
                    alert(e);
                };

                var blob = new Blob([data], { type: 'application/pdf' });

                fileWriter.write(blob);

            }, function onerror(e) {
                alert(e);
            });
        }, function onerror(e) {

            alert(e);
        });
    }, function onerror(e) {            
        alert(e);
    });

} catch (e) {
     alert(e);
}
},

希望这会有所帮助!

关于javascript - 如何从 Cordova 应用程序中的字节数组下载任何文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402715/

相关文章:

html - websql插入速度慢

android - window.location.reload() 导致 PhoneGap 1.4/Android Honeycomb 3.2.1 上的应用程序错误

cordova - Ionic Cordova InAppBrowser 内部 ionic 内容

javascript - 从多个 Facebook API 获取数据然后添加在一起

javascript - 加载页面时的缩放效果无法正常工作

android - 找不到与 com.google.firebase :firebase-iid:[16. 0.0 匹配的任何版本]

angularjs - Protractor 点击在 IE 中不起作用,但在 chrome 中起作用

css - ionic 按钮动画问题

javascript - 垂直 ionic 滚动未正确实现为页脚按钮覆盖列表组件

Javascript 调用表单提交 -> 调用 -> Javascript(ajax 调用)没有从 ajax 调用中获得返回值