Stuck on window.requestFileSystem
Stuck on window.requestFileSystem
我正在开发一款基于phonegap 4.0&wikitude。我想在根目录上创建一个文件夹(/storage/emulated/0/或/storage/sdcard0,如果有SD)。这样做的代码是:
onDeviceReady: function() {
app.receivedEvent('deviceready');
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
app.wikitudePlugin = cordova.require("com.wikitude.phonegap.WikitudePlugin.WikitudePlugin");
app.wikitudePlugin.isDeviceSupported(app.onDeviceSupportedCallback, app.onDeviceNotSupportedCallback);
},
gotFS: function(fileSystem) {
alert( "Got the file system: "+fileSystem.name +"<br/>" +
"root entry name is "+fileSystem.root.name + "<p/>");
fileSystem.root.getDirectory("ARMedia", {create: true}, gotDir, fail);
},
gotDir: function(dirEntry) {
file.entry = fileEntry;
alert('Folder ARMedia created!');
},
fail: function(error) {
alert(error);
},
问题是,当我在我的设备上测试时(小米mi3和三星galaxy选项卡2)应用程序卡在"window.requestFileSystem(LocalFileSystem.PERSISTENT,0,gotFS,fail);"
用于文件传输和文件的插件已经在我的插件文件夹中,android manifest.xml具有WRITE_EEXTERNAL_STORAGE的权限,我几乎所有的东西都试过了。。。我只是想知道为什么程序没有走得更远window.requestFileSystem.
谢谢并为我糟糕的英语感到抱歉。
很可能是这样的:LocalFileSystem.PERSISTENT。我相信你指的是窗口。PERSISTENT或window。暂时的。
如您所见,html 5文件系统API文档,对于持久存储,window.requestFileSytem()
的第二个参数是配额,"应用程序存储所需的大小(以字节为单位)。"如果将其设置为零,则文件系统可能毫无用处。
要查看是否允许您请求一定量的内存,您应该遵循文档建议:
若要使用PERSISTENT存储,您必须获得用户存储易逝数据的权限。同样的限制不适用于临时存储,因为浏览器可以自行选择收回临时存储的数据。
为了将PERSISTENT存储与FileSystem API一起使用,Chrome在window.webkitStorageInfo下公开了一个新的API来请求存储:
window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024, function(grantedBytes) {
window.requestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler)
;
}, function(e) {
console.log('Error', e);
});
一旦用户授予了权限,以后就不需要调用requestQuota()了(除非你想增加应用程序的配额)。随后要求相等或更少配额的呼吁是徒劳的。
- 没有找到相关文章