我正在尝试构建Chrome推送通知。
我尝试实现从网络引用的随机代码。
代码如下:
notification.html
<script>
function shows(){
var notify= webkitNotifications.createNotification('icon48.png','My notification',
'hi buddy');
notify.show();
}
if(webkitNotifications){
setInterval(function()
{
shows();
}, 1000);
}else{
chrome.tabs.create({url : "error.html"})
}
</script>
在 error.htm
中您的扩展程序中存在错误
在 manifest.JSON
中{
"manifest_version": 2,
"name": "My Extension",
"version": "1",
"description" : "Display every 5 sec",
"icons" : {"48" :"icon48.png"},
"permissions" : ["tabs","notifications"],
"background": {"page": "notifications.html"}
}
问题是扩展程序已加载到chrome中,但它不响应代码。也没有显示通知。 :(请帮忙。
答案 0 :(得分:1)
我没有使用过webkitNotifications但是我使用chrome.notifications API实现了chrome通知。 这就是我做到的。
在 background.js 中,
编写一个发送消息的代码。
function updateValues(){
var messageString = 'updated';
chrome.runtime.sendMessage({
body : messageString
});
}
updateValues();
setInterval(updateValues, 10000);
立即添加监听器。在经常更新值的函数之外。
chrome.runtime.onMessage.addListener(function(msg, sender) {
var message = msg.body;
chrome.notifications.onClicked.removeListener(openTab);
chrome.notifications.create(getNotificationId(), {
title : 'Test Update Notification',
iconUrl : 'notification.png',
type : 'basic',
message : message
}, function(id) {
});
chrome.notifications.onClicked.addListener(openTab);
});
function openTab(notificationId) {
var onClickLink = "http://www.mywebsitenotificationstest.com/";
chrome.tabs.create({
url : onClickLink
});
}
function getNotificationId() {
var id = Math.floor(Math.random() * 9007199254740992) + 1;
return id.toString();
}
就是这样。
基本上,当加载js时
就是这样。
编辑: 我的代码要大得多,我复制了它的粘贴部分。