检查用户是否授予剪贴板权限?

check whether user granted Clipboard permisssion or not?

如何使用javascript检查用户是否授予剪贴板读取权限?

我正在尝试获取指示当前剪贴板权限状态的布尔值。

您可以使用 Permissions API:

检查您是否有权访问剪贴板
await navigator.permissions.query({ name: 'clipboard-read' });
// or 'clipboard-write' for permission to write

// sample result: {state: 'granted'}

剪贴板读取权限有3种状态:授予、拒绝或提示“既未拒绝也未授予”。

因此,您的代码应如下所示:

const queryOpts = { name: 'clipboard-read', allowWithoutGesture: false };
const permissionStatus = await navigator.permissions.query(queryOpts);
// Will be 'granted', 'denied' or 'prompt':
console.log(permissionStatus.state);

// Listen for changes to the permission state
permissionStatus.onchange = () => {
  console.log(permissionStatus.state);
};

代码引用:https://web.dev/async-clipboard/

所以根据上面的代码,你可以写一个 returns true 或 false 的函数,比如:

// you pass permissionStatus.state to this function
const checkClipboardPermission = (state) => {
    if(state == "granted"){
        return true;
    }
    else if(state == "denied"){
        return false;
    }
    else {
        return false;
    }

}