有没有办法使用Apache Cordova专门知道根可用空间(Android和iOS)



最近我一直在实际工作中研究这个主题,所有的研究都转到了这个可用的字节函数,你可以在下面看到:

function onInitFs(fs) {
    var appDirectory = fs.root;
    window.alert("Directorio de trabajo: " + appDirectory.toURL());
    availableBytes(function (free_bytes) {
    console.log("Interal free space(root + internal): " + (free_bytes / (1024 * 1024 * 1024)).toFixed(0) + "GB");
 });
}
//Function used to know available space in internal storage
function availableBytes(callback, start, end) {
     callback = callback == null ? function () {} : callback
     start = start == null ? 0 : start
     end = end == null ? 1 * 1024 * 1024 * 1024 * 1024 : end 
     //starting with 1 TB
     limit = 1024 // precision of 1kb
     start_temp = start
     end_temp = end
     callback_temp = callback
     if (end - start < limit)
         callback(start)
     else {
         window.requestFileSystem(LocalFileSystem.PERSISTENT, parseInt(end_temp - ((end_temp - start_temp) / 2)), function (fileSystem) {
              setTimeout(function () {
                 availableBytes(callback_temp, parseInt(parseInt(end_temp - ((end_temp - start_temp) / 2))), end_temp)
        }, 0)
     }, function () {
        setTimeout(function () {
            availableBytes(callback_temp, start_temp, parseInt(end_temp - ((end_temp - start_temp) / 2)))
        }, 0)
     })
 }
}

如您所见,我们可以很容易地知道内部存储大小,但是根存储大小(即我存储下载的视频和音乐的位置以及客户端不容易到达的位置(不能被"询问",所以......有人知道正确的方法吗?

为了获得设备的可用空间,您必须添加 cordova-file-plugin: https://github.com/apache/cordova-plugin-file/

然后在设备就绪事件之后,可以运行以下代码:

cordova.exec(function(result) {
    alert("Free Disk Space: " + result);
}, function(error) {
    alert("Error: " + error);
}, "File", "getFreeDiskSpace", []);

这将提醒以千字节为单位的总空间,只需转换为兆字节或千兆字节即可。

相关内容

  • 没有找到相关文章

最新更新