【问题标题】:FileSystemHandle.requestPermission DOMException: User activation is required to request permissionsFileSystemHandle.requestPermission DOMException:需要用户激活才能请求权限
【发布时间】:2021-10-27 04:11:54
【问题描述】:

我的网站需要打开本地文件功能,因此我在代码中使用了文件系统访问 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

【问题讨论】:

    标签: javascript filehandle file-system-access-api


    【解决方案1】:

    您始终可以查询文件的权限,但请求需要用户手势(如要单击的按钮)。这在spec(强调我的)中有概述:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多