繁体   English   中英

FileSystemHandle.requestPermission DOMException:需要用户激活才能请求权限

[英]FileSystemHandle.requestPermission DOMException: User activation is required to request permissions

我的网站需要一个打开的本地文件功能,所以我在我的代码中使用文件系统访问 API。 当从本地打开的文件被我的网络编辑并需要保存到原始文件时。 我发现它没有权限。 因此,我找到了请求文件句柄权限的方法,如下所示:

    async function verifyPermission(fileHandle: any, readWrite: boolean) {
    const options = {
        mode: 'readwrite',
    };
    let isPermit = false;
    
    
    
    // Check if permission was already granted. If so, return true.
    if ((await fileHandle.queryPermission(options)) === 'granted') {
        isPermit =  true;
    }
    if ((await fileHandle.requestPermission(options)) === 'granted') {
        isPermit = true;
    }
    return isPermit;
}

但是当我执行到fileHandle.requestPermission(options)它控制台错误

Uncaught (in promise) DOMException: User activation is required to request permissions.

我缺少什么? 谢谢你的QQ

您始终可以查询文件的权限,但请求需要用户手势(例如单击按钮)。 规范中概述了这一点(重点是我的):

如果此句柄的读取权限状态不是“提示”,则将直接返回该状态。 但是,如果是“提示”,则需要用户激活,这将向用户显示确认提示。 然后根据用户对提示的响应返回新的读取权限状态。

您需要在实现中分离查询和请求权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM