如何在Chrome中实施推送通知

时间:2015-04-27 07:37:03

标签: javascript google-chrome google-chrome-extension manifest

我正在写一个 chrome 扩展程序,它会在某些时候收到消息。我希望在我的ico扩展程序的右下角有1,2,3 ... 小红圈,具体取决于用户收到的消息数量。更多,如果用户按下扩展程序并读取那些/那些消息,那么这个小圆圈就会消失

我已经阅读了一些很好的文章,关于我如何能够实现这样的事情,但就目前而言,我所提供的所有内容都是一个基本的通知,它会在十秒后消失。

manifest.json

{
    "name": "Notification with Audio",
    "description": "notification",
    "manifest_version": 2,
    "version": "1",
    "permissions": [
        "notifications"
    ],
    "background": {
        "scripts": [
            "background.js"
        ]
    }
}

background.js

createNotification(); audioNotification();

function audioNotification(){
    var yourSound = new Audio('yourSound.mp3');
    yourSound.play();
}

function createNotification(){
    var opt = {type: "basic",title: "Your Title",message: "Your message",iconUrl: "your_icon.png"}
    chrome.notifications.create("notificationName",opt,function(){});

    //include this line if you want to clear the notification after 5 seconds
    setTimeout(function(){chrome.notifications.clear("notificationName",function(){});},5000);
}

有人能描述实现我想要的过程吗?使用GCM服务是必须的吗?

1 个答案:

答案 0 :(得分:2)

如果您想要显示一个显示未读邮件数量的图标并点击一下,那么您需要一个Browser Action

浏览器操作可以 在点击时打开一个小页面,称为弹出窗口(如果要显示某些内容,则非常有用)或在后台页面中触发onClicked事件(如果您有用)想要做其他事情,比如打开一个网页。)

对于计数器,标准方法是使用徽章,可以使用setBadgeTextsetBadgeBackgroundColor进行设置。或者,您可以使用<canvas>在图标上绘制某种自定义徽章,并使用setIcon动态更新图标 - 但这会违反用户界面的传统Chrome。

Badge sample

至于推送消息 - GCM API是一个现成的解决方案,但你可以实现自己的; WebSockets将是一种合适的技术。

如果您对此有更具体的问题,请单独询问。