permissions.request() 编辑
Ask for the set of permissions listed in the given permissions.Permissions
object.
The Permissions
argument may contain either an origins
property, which is an array of host permissions, or a permissions
property, which is an array of API permissions, or both. Permissions must come from the set of permissions defined in the optional_permissions
manifest.json key. The origins
property may include permissions that match a subset of the hosts matched by an optional permission: for example, if optional_permissions include "*://mozilla.org/", then permissions.origins
may include "/wiki/".
The request can only be made inside the handler for a user action.
Depending on a circumstances, the browser will probably handle the request by asking the user whether to grant the requested permissions. Only a single request is made for all requested permissions: thus either all permissions are granted or none of them are.
Any permissions granted are retained by the extension, even over upgrade and disable/enable cycling.
This is an asynchronous function that returns a Promise
.
Syntax
var requesting = browser.permissions.request(
permissions // Permissions object
)
Parameters
permissions
- A
permissions.Permissions
object.
Return value
A Promise
that will be fulfilled with true
if the extension was granted all the permissions listed in the permissions
argument, or false
otherwise.
Browser compatibility
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Examples
This code adds a click handler that asks for various permissions, then logs the result of the request and the extension's permissions after the request completed.
const permissionsToRequest = {
permissions: ["bookmarks", "history"],
origins: ["/wiki/"]
}
function requestPermissions() {
function onResponse(response) {
if (response) {
console.log("Permission was granted");
} else {
console.log("Permission was refused");
}
return browser.permissions.getAll();
}
browser.permissions.request(permissionsToRequest)
.then(onResponse)
.then((currentPermissions) => {
console.log(`Current permissions:`, currentPermissions);
});
}
document.querySelector("#request").addEventListener("click", requestPermissions);
Example extensions
Acknowledgements
Currently has a bug with requesting origins and requesting permissions on the about:addons page.
This API is based on Chromium's chrome.permissions
API.
Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论