ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-22 21:35:44  阅读:207  来源: 互联网

标签:javascript cordova jquery-mobile cordova-3


我正在尝试使用从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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有