概述权限查询与请求分散在不同 API 中。本文给出统一封装以提升可维护性。能力检测与查询const supportsPerm = !!(navigator.permissions && navigator.permissions.query);
async function queryPerm(name) {
if (!supportsPerm) return 'prompt';
const status = await navigator.permissions.query({ name });
return status.state;
}
async function ensureNotification() {
const state = await queryPerm('notifications');
if (state === 'granted') return true;
const res = await Notification.requestPermission();
return res === 'granted';
}
async function ensureClipboardRead() {
const state = await queryPerm('clipboard-read');
return state === 'granted';
}

发表评论 取消回复