Cordova 文件 reader 不工作

Cordova file reader don't work

我对 Cordova 中的文件插件有一个奇怪的问题。如果我 运行 它作为 windows phone 8.1 应用程序,下面的代码工作正常。但是如果我 运行 它作为 Windows Phone Universal App

它会失败
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
       function (fs) {
           fs.root.getFile("www/test.xml", null, function (fileEntry) {
               fileEntry.file(gotFile, fail);
           }, fail);
       }, fail);

的调用后
function (fs) {
           fs.root.getFile("www/test.xml", null, function (fileEntry) {
               fileEntry.file(gotFile, fail);
           }, fail);

调用了错误回调函数,错误代码为 1。这意味着找不到该文件。有谁知道问题出在哪里?如果是这样,我该如何解决。

我想,我在错误的文件系统中。有谁知道我必须使用哪个?

我知道有一些类似的问题,但它们仅涉及 windows phone 8.1 而不是 windows phone 通用。 我在 Visual Studio.

中使用 cordova

我也无法让它作为 windows phone 8.1 应用程序运行。

我用 {create:true} 使用以下代码尝试了它:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
    function (fs) {
       fs.root.getFile("test.xml", { create: true }, function (fileEntry) {
           fileEntry.file(gotFile, fail);
       }, fail);
}, fail);

我得到了如下的 fileEntry

可以看到新建文件的nativeURLms-appdata:///local//test.xml,也就是说不是在application目录下创建的,而是在C:\Users\<username>\AppData\Local\Packages\<application identity name>\LocalState下,如下所示:

我研究了文档,但没有找到检索应用程序目录文件的方法。 所以目前的解决方法是使用 windows API 来获取应用程序目录下的文件,如下所示:

if (cordova.platformId == "windows")
{
    var uri = new Windows.Foundation.Uri("ms-appx:///www/test.xml");
    Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).then(function (fs) {
                var abc = fs;//get the file here
             },fail);
 }