如何检查用户是否已使用JavaScript授予剪贴板读取权限?
我正在尝试获取一个表示当前剪贴板权限状态的布尔值。
答案 0 :(得分:2)
剪贴板读取权限具有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/
因此,从上面的代码中,您可以编写一个返回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;
}
}
答案 1 :(得分:1)
您可以使用Permissions API检查是否有权访问剪贴板:
await navigator.permissions.query({ name: 'clipboard-read' });
// or 'clipboard-write' for permission to write
// sample result: {state: 'granted'}