未捕获的TypeError:对象#<object>没有方法'writeFile'

时间:2016-10-27 18:55:38

标签: javascript cordova

我正在使用Ionic框架,它的核心是AngularJS,我正在尝试将文件保存到设备的存储中。此代码适用于创建pdf:

return $q(function(resolve, reject) {
            var dd = createDocumentDefinition(invoice);
            var pdf = pdfMake.createPdf(dd);

            pdf.getBase64(function (output) {
                resolve(base64ToUint8Array(output));
            });
        });

现在我正在尝试使用以下方法保存pdf:

return $q(function (resolve, reject) {
                var dd = createDocumentDefinition(invoice);
                var pdf = pdfMake.createPdf(dd);

                //For download Android
                var pdf = pdfMake.createPdf(dd).getBuffer(function (buffer) {

                var utf8 = new Uint8Array(buffer); // Convert to UTF-8...

                binaryArray = utf8.buffer; // Convert to Binary...


                $cordovaFile.writeFile(cordova.file.externalApplicationStorageDirectory, "example.pdf", binaryArray, true) //This saves to device storage

                .then(function (success) {

                console.log("pdf created");

                }, function (error) {

                console.log("error");

              });

              });
          });

转换的前几行的主要区域是我认为问题来自哪里,但我似乎无法修复它,每当设备试图保存时我都会收到:

Uncaught TypeError: Object #<Object> has no method 'writeFile'

请问有什么解决方案?

1 个答案:

答案 0 :(得分:0)

您确定已安装cordova文件插件吗?请记住,您需要安装文件插件才能使用$ cordovaFile。在项目目录中运行以下命令...

cordova plugin add cordova-plugin-file

有时,您需要在添加插件时删除并重新添加要构建的平台。如果您添加插件但仍然无法尝试删除然后添加平台

cordova platform rm android
ionic platform add android

http://ngcordova.com/docs/plugins/file/