Chrome推送通知

时间:2016-02-29 07:13:20

标签: javascript json web google-chrome-extension push-notification

我正在尝试构建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中,但它不响应代码。也没有显示通知。 :(请帮忙。

1 个答案:

答案 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时

  1. updateValues()调用API并创建一个侦听器来调用 每10秒更新一次。
  2. 调用updateValues后,它 使用。发送消息到runtime.onMessage侦听器 sendMessage API。
  3. 在onMessage监听器中,我们有代码来创建 使用chrome.notifications.create。
  4. 的通知

    就是这样。

    编辑: 我的代码要大得多,我复制了它的粘贴部分。