chrome.notifications
描述: |
使用 chrome.notifications API
通过模板创建丰富通知,并在系统托盘中向用户显示这些通知。
|
可用版本: |
从 Chrome 28 开始稳定支持。
|
权限: |
"notifications"
|
了解更多: |
Chrome 应用办公时间:丰富的通知
|
注意:目前该
API 只能在 Chrome OS、Windows 和 Mac 上使用。
用法
要使用该 API,请调用
create
方法,并通过 options
参数传递通知详情:
chrome.notifications.create(id, options, creationCallback);
NotificationOptions
必须包含
TemplateType,它定义了可用的通知详情以及这些详情是如何显示的。
所有模板类型(simple
、basic
、image
、list
)都必须包含通知的
title
(标题)和 message
(消息),还要包含
iconUrl
(图标 URL),指向显示在通知消息左侧的小图标。image
模板类型还包含 imageUrl
(图片 URL),指向在通知中预览的图片。由于
Chrome 应用严格的内容安全策略,这些 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: "这是项目三。"}]
}
如果您有关于不同布局的新模板的想法,请报告问题让我们知道。
监听和响应事件
所有通知都可以包含事件监听器和事件处理函数,响应用户的操作。例如,您可以编写一个简单的事件处理函数,响应
onButtonClicked 事件。
请考虑将事件监听器和处理函数包含在事件页面中,这样即使应用或扩展程序不在运行时也能弹出通知。
类型
TemplateType
enum of
"basic"
,
"image"
,
"list"
,
or "progress"
PermissionLevel
enum of
"granted"
,
or "denied"
NotificationOptions
-
iconUrl
(
optional
string
)
-
发送方的图标、应用图标或图片通知的缩略图,调用 create 方法时必须指定。
-
title
(
optional
string
)
-
通知标题(例如邮件发送者的姓名),调用 create 方法时必须指定。
-
message
(
optional
string
)
-
通知的主要内容,调用 create 方法时必须指定。
-
contextMessage
(
optional
string
)
-
附加通知内容,以较小的字体显示。
-
priority
(
optional
integer
)
-
优先级,从 -2 到 2,-2 优先级最低,2 最高,默认为零。
-
eventTime
(
optional
double
)
-
与通知相关联的时间,表示为 1970 年 1 月 1 日以来所经过的毫秒数(例如
Date.now() + n
)。
-
-
通知动作按钮(最多两个)的文本和图标。
每一个对象的属性
-
imageUrl
(
optional
string
)
-
图片类型通知的图片缩略图。
-
items
(
optional
array of object
)
-
多项目通知的项目。
每一个对象的属性
-
-
title
(
string
)
-
通知列表中某个项目的标题。
-
message
(
string
)
-
该项目的额外详情。
-
progress
(
optional
integer
)
-
当前进度,从 0 到 100。
-
isClickable
(
optional
boolean
)
-
是否在用户界面中显示应用会以可见的方式响应通知正文的单击。
方法
create
chrome.notifications.create(
string notificationId,
NotificationOptions options,
function callback)
创建并显示通知。
参数
-
notificationId
(
string
)
-
通知的标识符。如果为空,该方法会生成一个标识符。如果匹配已有的标识符,该方法在创建操作之前会首先清除这一通知。
-
callback
(
function
)
-
返回通知标识符(提供的或生成的),代表创建的通知。
callback 参数应该指定一个如下形式的函数:
function(string notificationId) {...};
-
notificationId
(
string
)
-
update
chrome.notifications.update(
string notificationId,
NotificationOptions options,
function callback)
更新已有的通知。
参数
-
notificationId
(
string
)
-
要更新的通知标识符,由 create 方法返回。
-
callback
(
function
)
-
调用时指示是否存在匹配的通知。
callback 参数应该指定一个如下形式的函数:
function(boolean wasUpdated) {...};
clear
chrome.notifications.clear(string notificationId, function callback)
清除指定的通知。
参数
-
notificationId
(
string
)
-
要清除的通知标识符,由 create 方法返回。
-
callback
(
function
)
-
调用时指示是否存在匹配的通知。
callback 参数应该指定一个如下形式的函数:
function(boolean wasCleared) {...};
getAll
chrome.notifications.getAll(function callback)
获取所有通知。
参数
-
callback
(
function
)
-
返回系统中当前所有通知标识符。
callback 参数应该指定一个如下形式的函数:
function(object notifications) {...};
getPermissionLevel
chrome.notifications.getPermissionLevel(function callback)
获取用户是否为当前应用或扩展程序启用通知。
参数
-
callback
(
function
)
-
返回当前的权限级别。
callback 参数应该指定一个如下形式的函数:
function(PermissionLevel level) {...};
事件
onClosed
通知由系统或用户操作关闭。
addListener
chrome.notifications.onClosed.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(string notificationId, boolean byUser) {...};
-
notificationId
(
string
)
-
onClicked
用户单击了通知中的非按钮区域。
addListener
chrome.notifications.onClicked.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(string notificationId) {...};
-
notificationId
(
string
)
-
用户按下了通知中的一个按钮。
addListener
chrome.notifications.onButtonClicked.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(string notificationId, integer buttonIndex) {...};
onPermissionLevelChanged
用户更改了权限级别。
addListener
chrome.notifications.onPermissionLevelChanged.addListener(function callback)
onShowSettings
用户单击了应用的通知设置链接。
addListener
chrome.notifications.onShowSettings.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function() {...};