我有一个 Phonegap 应用程序,它使用文件系统 API 将文件保存在设备文件系统上。
启动时,应用程序需要一些文件系统空间window.requestFileSystem
但运行时可以下载其他文件,并且我无法预测所需的磁盘空间总量。
其想法是在下载开始之前检查可用空间,如果空间不足,则向用户触发消息。
Phonegap 是否有某种方法可以检查剩余的可用空间?
发现之前这个帖子我创建了自己的函数来执行此操作,尝试获取具有确定字节的文件系统,直到达到限制并递归地假定可用空间。由于回调,也许有必要设置一个大于 0 的超时。在我的测试中,cordova.exec 方式和我的方式之间的差异非常小,并且降低限制值的准确性可能会更好。
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)
})
}
}
可以这样使用:
availableBytes(function(free_bytes){
alert(free_bytes)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)