询问用户是否允许存储数据

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在真正使用本地文件系统的时候,比如在文件系统里创建文件或者目录,我们需要在应用里设置代码,询问用户是允许请求的文件系统 … 用户点击允许以后,我们的应用才能正常去使用文件系统 …

打开文档的脚本文件 … 在 onSuccess() 里面,我们先粘贴过来几行代码 … 这几行代码的作用就是在文件系统的根目录下,去创建一个叫 log.txt 的文件 … 以后面我们再具体去解释它的意思 …

/* 创建一个文件在根目录下 */
fileSystem.root.getFile('log.txt', {create: true, exclusive: true}, function (fileEntry) {
console.log(fileEntry);
}, onError);

保存 … 回到浏览器 … 打开控制台 … 然后再刷新一下 …

在控制台上会显示一条错误信息 …

The operation failed because it would cause the application to exceed its storage quota.

操作失败了,因为操作导致了应用超过了存储配额。 出现这个错误的原因可能是应用真的超过了请求的文件系统的尺寸,或者也可能是因为你没有询问用户是否允许我们的应用使用文件系统来存储数据 …

询问用户

在 webkit 核心的浏览器上询问用户是否允许使用请求的文件系统的存储空间,可以使用 requestQuota() 这个方法 … 这个方法是在 navigator 对象下面的 webkitPersistentStorage 还有 webkitTemporaryStorage 里面 …

webkitPersistentStorage 表示永久的存储空间, webkitTemporaryStorage 表示临时的存储空间 …

/* 在 Webkit 核心浏览器上请求存储配额
navigator.webkitPersistentStorage.requestQuota();

requestQuota() 这个方法有三个参数,第一个参数是请求的空间的大小,第二个参数是成功要做的事,第三个参数是失败的时候要做的事 …

想要使用的存储空间是 1024 * 1024 字节 … 也就是 1 兆的空间 …. 成功以后,我们可以去执行一个匿名函数 … 把用户授权使用的空间大小作为这个函数的一个参数 … 在这个函数里面 … 我们再去使用 requestFileSystem() 去请求一个本地的文件系统 …

出现错误的时候,让它去执行 onError() ..

/* 在 Webkit 核心浏览器上访问用户是否允许使用请求的存储空间 */
navigator.webkitPersistentStorage.requestQuota(1024 * 1024, function (fileSystemSize) {
window.requestFileSystem(PERSISTENT, fileSystemSize, onSuccess, onError);
}, onError);

然后删除或者注释掉之前用来请求文件系统的这行代码 … 再保存一下这个文件 …

回到浏览器上 … 打开控制台 ... 刷新 … 在页面上,会显示一条询问的信息 .. 提醒用户,是否允许 localhost 在本地计算机上永久保存数据 …

点击 确定 …. 在控制台上,会输出之前我们想要创建的 log.txt 这个文件对象 .. 表示成功创建了这个空白的文件 …

询问用户是否允许存储数据《 HTML5:文件系统 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点