- 要在
manifest.json
中配置permissions
的权限 - 调用系统 api 发送,有几种类型的,主要讲
basic
和progress
两种类型的 - 还有什么点击这个干什么事情,notification关闭又做什么事情,就自己去研究了吧,主要是添加事件 onClicked.addListener, onClosed.addListener
先对 api 进行一下说明
- chrome.permissions.getAll(callback) 返回所有正在现实中的 notification
- chrome.permissions.getPermissionLevel() 返回 notification 的授权状态"denied"和"granted"
- chrome.permissions.create() 创建 notification
- chrome.permissions.update() 更新 notification
- chrome.permissions.clear() 清除所有的 notification
现在有一个需求是:每隔 10s 中给发送一条系统通知,create 里面的第一个参数是 id,这个 id 比较关键,主要是 update 的时候有用,可以覆盖显示
// 创建一个系统通知
let count = 0
const timer = setInterval(() => {
chrome.notifications.create(`id-${count++}`, {
type: 'basic',
iconUrl: chrome.extension.getURL('icons/icon_48.png'), // 这个图片是相对于当前扩展所在的路径
title: '欢迎使用',
message: '欢迎使用 xfjpeter 插件,请在设置中进行配置'
})
if (count >= 10) {
clearInterval(timer)
}
})
创建文件下载的通知进度,这里就用到了 update
- type 设置成 progress
- 不断更新 progress 的值
chrome.notifications.create('download', {
type: 'progress',
progress: 30,
iconUrl: chrome.extension.getURL('icons/icon_48.png'),
title: '欢迎使用',
message: '正在下载中'
})
let count = 0
const timer = setInterval(() => {
if (count++ >= 100) {
clearInterval(timer)
}
chrome.notifications.create('download', {
type: 'progress',
progress: count > 100 ? 100 : count,
iconUrl: chrome.extension.getURL('icons/icon_48.png'),
title: '标题',
message: count === 100 ? '下载完成' : '正在下载中'
})
}, 1000)