Notification:requestPermission() 静态方法
requestPermission()
是Notification
接口的静态方法,它会向用户请求权限,以允许当前来源显示通知。
此方法返回一个Promise
,该 Promise 会解析为一个字符串,指示权限是否已授予或拒绝。
语法
js
Notification.requestPermission()
// Deprecated syntax using a callback
Notification.requestPermission(callback)
参数
返回值
示例
假设有以下基本 HTML
html
<button onclick="notifyMe()">Notify me!</button>
可以按如下方式发送通知 - 在这里,我们提供了一组相当详细且完整的代码,如果您想首先检查通知是否受支持,然后检查是否已授予当前来源发送通知的权限,然后在发送通知之前根据需要请求权限,则可以使用这些代码。
请注意,应在响应用户交互时发出请求:在下面,该方法是在点击事件处理程序中调用的。
js
function notifyMe() {
if (!("Notification" in window)) {
// Check if the browser supports notifications
alert("This browser does not support desktop notification");
} else if (Notification.permission === "granted") {
// Check whether notification permissions have already been granted;
// if so, create a notification
const notification = new Notification("Hi there!");
// …
} else if (Notification.permission !== "denied") {
// We need to ask the user for permission
Notification.requestPermission().then((permission) => {
// If the user accepts, let's create a notification
if (permission === "granted") {
const notification = new Notification("Hi there!");
// …
}
});
}
// At last, if the user has denied notifications, and you
// want to be respectful there is no need to bother them anymore.
}
我们不再在此页面上显示实时示例,因为 Chrome 和 Firefox 不再允许从跨源<iframe>
请求通知权限,其他浏览器也将效仿。要查看实际示例,请查看我们的待办事项列表示例(另请参阅正在运行的应用程序)。
规范
规范 |
---|
Notifications API 标准 # dom-notification-requestpermission |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。