Stuck on window.requestFileSystem

Stuck on window.requestFileSystem

本文关键字:requestFileSystem window on Stuck      更新时间:2023-09-26

我正在开发一款基于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()了(除非你想增加应用程序的配额)。随后要求相等或更少配额的呼吁是徒劳的。

相关文章:
  • 没有找到相关文章