【问题标题】:cordova.file.* (all directories) are nullcordova.file.* (所有目录)为空
【发布时间】:2017-01-23 17:36:59
【问题描述】:

我正在开发 Ionic 移动应用程序。

我的要求是创建客户端记录器来跟踪应用程序中的问题。我使用https://github.com/pbakondy/filelogger中提到的方法,在Android和iOS都可以创建日志文件。

当我第一次打开应用程序时,它会在 cordova.file.dataDirectory 中创建日志文件,当我在 i*OS 中关闭并重新打开应用程序时,我正在尝试读取使用以下内容创建的文件的内容

$fileLogger.getLogfile().then(function (loggerContent) {
                    var temp =loggerContent;
                });

但应用程序说

{ 
"applicationDirectory":null,
"applicationStorageDirectory":null,
"dataDirectory":null,
"cacheDirectory":null,
"externalApplicationStorageDirectory":null,
"externalDataDirectory":null,
"externalCacheDirectory":null,
"externalRootDirectory":null,
"tempDirectory":null,
"syncedDataDirectory":null,
"documentsDirectory":null,
"sharedDirectory":null
}

所以我找不到保存日志的文件。

请帮我解决这个问题,或者如果你能推荐一种不同的方法来解决这个问题,那就太好了!

感谢您的回答

【问题讨论】:

  • 你实际使用的是什么代码?
  • 你能告诉我你是怎么解决这个问题的吗?我也面临同样的问题。

标签: android ios cordova ionic-framework cordova-plugin-file


【解决方案1】:

这里有一个检查清单,应该可以解决您的问题:

1-确保 cordova-file-plugin 已安装并在您的测试环境中工作。

2-确保在您的代码使用之前,您的 html 引用了 cordova.js 文件。

3-确保在 device_ready 状态之后调用您的代码: 检查this

4-在短暂延迟后调用您的函数(在 Javascirpt 中使用 setTimeOut)

【讨论】:

    【解决方案2】:

    阿里的第4条很重要: 我在不同平台上遇到了类似的问题:cordova.file.dataDirectory 为空。 我在整个生命周期中跟踪了 cordova.file.dataDirectory,并且在触发设备就绪事件之前,它首先由我的 Ionic 2 代码访问。 我的“错误”:我想在服务的构造函数(!)期间加载数据。似乎为时过早。

    【讨论】:

    • 我在服务构造函数中做了同样的事情。很高兴我找到了这个页面。
    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多