跳到主要内容

permissions 权限

官方文档

针对声明的可选权限(optional_permissions); ———— 请求授予扩展程序某些权限(request) 针对已授予的权限(permissions):

  1. 查询当前扩展程序是否具有某些权限(contains)
  2. 移除已授予的权限(remove);移除所有已授予的权限(removeAll);
  3. 监听权限变更(onAddedonRemoved)

方法

contains() 查询权限

查询当前扩展程序是否具有某些权限

type Permissions = {
permissions: string[];
origins?: string[];
}
chrome.permissions.contains(
permissions: Permissions,
callback?: function,
)

request() 请求权限

请求授予扩展程序某些权限,需要在manifest.json中声明optional_permissions

{
"optional_permissions": [
// ...
]
}
type Permissions = {
permissions: string[];
origins?: string[];
}
chrome.permissions.request(
permissions: Permissions,
callback?: function,
)

remove() 移除权限

移除已授予的权限

type Permissions = {
permissions: string[];
origins?: string[];
}
chrome.permissions.remove(
permissions: Permissions,
callback?: function,
)

removeAll() 移除所有权限

移除所有已授予的权限

chrome.permissions.removeAll(
callback?: function,
)

getAll() 获取所有权限

获取所有已授予的权限

chrome.permissions.getAll(
callback?: function,
)

事件

onAdded 添加事件

当权限被添加时触发

// background.js
chrome.permissions.onAdded.addListener((permissions) => {
console.log('🍄 background: >>>>>>>>>>>>>>>>>> 监听添加事件', Date.now(), permissions);
});

onRemoved 移除事件

当权限被移除时触发

// background.js
chrome.permissions.onRemoved.addListener((permissions) => {
console.log('🍄 background: >>>>>>>>>>>>>>>>>> 监听移除事件', Date.now(), permissions);
});