编程语言
首页 > 编程语言> > javascript – cordova 3.x(phonegap) – 写入/ data / data生成encodingException

javascript – cordova 3.x(phonegap) – 写入/ data / data生成encodingException

作者:互联网

我正在尝试使用从here获取的以下代码在我的应用程序内存上写一个文件:

    writeOnFileSystem : function() {
    console.log("writeOnFileSystem resolveLocalFileSystemURL ...");     
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
};

function gotFS(fileSystem) {
fileSystem.root.getFile("file:///data/data/com.company.app/readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
 ...
}

function fail(error) {
  console.log(error.code);
 }

这引发了这样的异常:

05-14 12:16:55.704:W / System.err(27827):org.apache.cordova.file.EncodingException:此路径中包含无效的“:”.

我正在使用此字符串来访问我的/ data / data:
file:///data/data/com.company.app/readme.txt(com.company.app是我的应用程序的包)

>这是访问我的/数据/数据的正确方法吗?

如果我在SD上写入相同的代码,默认情况下在Android上完成.

我在用:

科尔多瓦3.5.0-0.2.1

org.apache.cordova.file 1.0.1“文件”

org.apache.cordova.file-transfer 0.4.4-dev“文件传输”

JQM

日食

解决方法:

编辑:虽然这个答案仍然有效,但Cordova File API还有很多变化

无论如何,

当你调用requestFileSystem时,它返回一个
FileSystem对象,其root属性是DirectoryEntry.

当您调用resolveLocalFileSystemURI时,它将返回DirectoryEntry或
FileEntry的.

所以在你的情况下你需要做:

window.resolveLocalFileSystemURI("file:///data/data/{package_name}", onSuccess, one rror); 

function onSuccess(entry) { 
    entry.getDirectory("example", {create: true, exclusive: false},onGetDirectorySuccess, onGetDirectoryFail); 
}
function one rror(error){
console.log(error);
}

方法resolveLocalFileSystemURI将允许您访问/ data / data文件夹,然后从那里开始.

window.requestFileSystem的问题(LocalFileSystem.PERSISTENT,0,gotFS,失败);是在Android上,如果设备上安装了SD卡,它将为您提供SD卡路径,否则它将为您提供内部存储的路径(甚至不确定数据/数据/ {package_name}或其他地方) .如果你问我,这是有史以来最愚蠢的设计选择之一

标签:javascript,cordova,jquery-mobile,cordova-3
来源: https://codeday.me/bug/20190722/1506841.html