繁体   English   中英

ngCordova在Android上写入文件

[英]ngCordova write file on Android

我正在尝试使用ionic论坛上的ngCordova函数将文件写入Android设备上的本地存储。 该函数的外观如下:

$scope.exportClicked = function(options) {
  var deferred = $q.defer();
  $window.resolveLocalFileSystemURL($window.cordova.file.dataDirectory,
    function(dir) {
      dir.getFile('text.txt', {
        create: true
      }, function(fileEntry) {
        fileEntry.createWriter(
          function(fileWriter) {
            if (options['append'] === true) {
              fileWriter.seek(fileWriter.length);
            }
            fileWriter.onwriteend = function(evt) {
              evt.fileEntry = fileEntry;
              deferred.resolve(evt);
            };
            fileWriter.write(data);
          },
          function(error) {
            deferred.reject(error);
          }
        );
      }, function(er) {
        deferred.reject(error);
      });
    });
  return deferred.promise;
};

当我通过Web浏览器中的ionic运行应用程序时,它给我一个错误:

TypeError: Cannot read property 'file' of undefined
at Scope.$scope.exportClicked (app.js:27)

我已经安装了cordova文件插件,但似乎找不到cordova.file功能。 在Android设备上,它也不起作用。 有任何想法吗?

您忘记安装文件cordova插件。 https://github.com/apache/cordova-plugin-file

未定义$window.cordova 由于您使用的是ngCordova,并且ngCordova对文件插件有官方支持,因此我将从ngCordova文档开始介绍文件插件 这是您可能感兴趣的一点:

$cordovaFile.writeFile(cordova.file.dataDirectory, "file.txt", "text", true)
  .then(function (success) {
    // success
  }, function (error) {
    // error
  });

使用ngCordova实现时,您还将获得具有更多可读代码的额外好处。

如果您愿意跟随你的原来的例子更加紧密,尝试更换$window.cordovawindow.cordova ,或者干脆cordova

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM