在Html5中,有一个关于桌面通知(Desktop Notification)的API,允许应用程序发送通知到桌面。这里要讲的是Chrome浏览器中插件(extension)中桌面通知的应用。
在Chrome v28版本之后,Chrome插件里面桌面通知的API改变了,而在http://open.chrome.360.cn/和Chromium文档中依旧未变。
Chrome v28,取消了webkitNotifications.createHTMLNotification()
方法,仅剩下createNotification()
方法,另外去似乎在background页面中无法获取通过createNotification()
方法生成的通知。
上帝给你关上一道门,同时也会给你打开一扇窗。修改之后,Chrome插件引入全新的chrome.notifications
英文原版说明参照 https://developer.chrome.com/extensions/notifications.html
中文汉化参照 http://lmk123.duapp.com/chrome/extensions/notifications.html --中文版不是最新的
目前该 API 只能在 Chrome OS , Mac 和 Windows 上正常工作。
chrome.notifications
类型
通知包含四种类型(TemplateType):“basic”,"image","list","progress"
所有模板类型(simple、basic、image、list)都必须包含通知的 title(标题)和 message(消息),还要包含 iconUrl(图标 URL),指向显示在通知消息左侧的小图标。image 模板类型还包含 imageUrl(图片 URL),指向在通知中预览的图片。由于严格的内容安全策略,这些 URL 都应该指向本地资源或使用数据 URL。
basic
模版的一个列子:
var opt = {
type: "basic",
title: "主要标题",
message: "要显示的主要消息",
iconUrl: "url_to_small_icon"
}
list
(列表)模版以列表的形式显示items
。
var opt = {
type: "list",
title: "主要标题",
message: "要显示的主要消息",
iconUrl: "url_to_small_icon",
items: [{ title: "Item1", message: "这是项目一。"},
{ title: "Item2", message: "这是项目二。"},
{ title: "Item3", message: "这是项目三。"}]
}
方法
create
chrome.notifications.create(string notificationId, NotificationOptions options, function callback)
创建并显示一个通知,内容由options指定,由notificationId标识。notificationId可以为空,create会自动生成标识符。如果notificationId匹配已有的通知,create会在创建之前清楚这一通知。callback返回通知标识符,表示创建的通知。
参数
notificationId ( string )
options ( NotificationOptions )
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(string notificationId) {...};
update
chrome.notifications.update(string notificationId, NotificationOptions options, function callback)
更新具有notificationId
标识符和options
选项的已有通知,callback
指示是否存在匹配的通知。
参数
notificationId(string)
options(NotificationOptions)
callback(function()
回调函数
callback参数应该指定如下形式的函数:
function(boolean wasUpated){...};
clear
chrome.notifications.clear(string notificationId, function callback)
清除指定的由create
方法返回的notificationId
对应的通知,callback
指示是否存在匹配的通知。
参数
notificationId ( string )
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(boolean wasCleared) {...};
getAll
chrome.notifications.getAll(function callback)
执行 callback
时传递系统当前所有的通知标识符。
参数
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(object notifications) {...};
事件
onClosed
通知由系统或用户操作关闭。
chrome.notifications.onClosed.addListener(function callback)
参数
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(string notificationId, boolean byUser) {...};
onClicked
用户单击了通知中的非按钮区域
chrome.notifications.onClicked.addListener(function callback)
参数
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(string notificationId) {...};
onButtonClicked
用户按下了通知中的一个按钮。
chrome.notifications.onButtonClicked.addListener(function callback)
参数
callback ( function )
回调函数
callback参数应该指定一个如下形式的函数:
function(string notificationId, integer buttonIndex) {...};
版权声明:本文为原创文章,版权归 neo 所有。
本文链接:https://idayer.com/chrome-extension-desktop-notifications-api/
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
0 条评论