标签: web-notifications

服务器工作者已注册两次

调用register函数时,我正在使用FCM Web通知服务:

if ('serviceWorker' in navigator) {
         window.addEventListener('load', function() {
        navigator.serviceWorker.register('/sw.js').then(function(registration) {
          // Registration was successful
          console.log('ServiceWorker registration successful with scope: ', registration.scope);
        }).catch(function(err) {
          // registration failed :(
          console.log('ServiceWorker registration failed: ', err);
        });
      });
    }
Run Code Online (Sandbox Code Playgroud)

服务工作者被注册两次,一次是由于此功能,一次是通过FCM脚本注册。这是我的服务人员代码:

importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-messaging.js');

    'messagingSenderId': '<my senderid>'
});

const messaging = firebase.messaging();


messaging.setBackgroundMessageHandler(function (payload) {


    self.addEventListener('notificationclick', function (event) {
        event.notification.close();

        var promise = new Promise(function (resolve) {
            setTimeout(resolve, 1000);
        }).then(function () {
            return clients.openWindow(payload.data.locator);
        });

        event.waitUntil(promise);
    });

    var notificationTitle = payload.data.title;
    var …
Run Code Online (Sandbox Code Playgroud)

javascript web-notifications firebase service-worker firebase-cloud-messaging

5
推荐指数
0
解决办法
701
查看次数

通过FCM进行Web推送通知的click_action属性

我的问题是与(问题)类似但有些不同的问题.我正在使用FCM Admin SDK,但仍然没有看到为Web推送通知发送click_action属性的选项.我也检查了admin.messaging.NotificationMessagePayload,但看起来这只适用于Android和iOS.

根据上述问题中的评论,此click_action不适用于使用http v1 API进行网络推送(我认为FCM管理员SDK也是如此)

请帮我介绍如何使用FCM Admin SDK发送web推送通知的click_action属性.如果还有其他解决方法,那也会有所帮助.

提前致谢.

web-notifications firebase firebase-cloud-messaging

5
推荐指数
2
解决办法
1038
查看次数

在浏览器环境中拦截HTML5 Web通知

我想拦截HTML5 Web通知。我已经阅读了以下答案,其中用户建议可以window.Notification用您自己的充当代理的对象覆盖该对象。我试图这样做,但是无法使其正常工作。以下是页面加载后我要注入的JavaScript代码:

function setNotificationCallback(callback) {

    const OldNotify = window.Notification;
    OldNotify.requestPermission();

    const newNotify = (title, opt) => {
        callback(title, opt);
        return new OldNotify(title, opt);
    };
    newNotify.requestPermission = OldNotify.requestPermission.bind(OldNotify);
    Object.defineProperty(newNotify, 'permission', {
        get: () => {
            return OldNotify.permission;
        }
    });

    window.Notification = newNotify;
}
function notifyCallback(title, opt) {
    console.log("title", title); // this never gets called
}

window.Notification.requestPermission(function (permission) {
    if (permission === "granted") {
        setNotificationCallback(notifyCallback);
    }
})
Run Code Online (Sandbox Code Playgroud)

html javascript browser web web-notifications

5
推荐指数
1
解决办法
287
查看次数

如何从 Service Worker 发送通知

我有一个 Service Worker 创建一个 Websocket 来监听通知,并且工作正常。我的问题是,当我尝试显示通知时,我无法显示。这是代码

function displayNotification(title, body, tag, url, actions) {
    if (Notification.permission == "granted") {
        if (title == undefined || title == null || title == "") title = "My site"
        if (body == undefined || body == null) body = ""
        if (tag == undefined || tag == "") tag = null
        if (url == undefined || url == null || url == "") url = "https://example.com/"
        if (actions == undefined || actions == null || …
Run Code Online (Sandbox Code Playgroud)

javascript notifications web-notifications service-worker

5
推荐指数
1
解决办法
2950
查看次数

使用HTML5通知激活浏览器选项卡

我正在使用HTML5 Notification API在新内容可用时显示消息.我想显示浏览器选项卡,该选项卡会在用户单击邮件时激活通知,但我无法找到API来执行此操作.我确实找到了Page Visibility API,但它似乎只在标签更改时发送事件,而不允许我激活标签.

是否可以像这样控制浏览器,还是根本不允许?

browser html5 notifications web-notifications

4
推荐指数
1
解决办法
962
查看次数

没有SSL的Chrome网络通知(绕过服务工作者)

那么,是否可以在没有SSL证书的情况下为Chrome实施网络通知?我想避免在我的网站上安装SSL,如果有一种方法可以在没有Service Worker的情况下发送通知,那将会很酷.

javascript google-chrome web-notifications service-worker

4
推荐指数
1
解决办法
2027
查看次数

Web应用可以提供桌面通知吗?

好吧,制作应用程序的一个小想法贯穿我的脑海.但这是我第一次尝试申请.到目前为止,我已经开始使用PHP,C++,Ruby和Rails框架工作,但都处于初级阶段.

如果我的想法如此要求,我准备采取更大的飞跃并广泛学习它们.要求是Web应用程序为您提供桌面通知.我已经看到Gmail聊天框发生了这种情况.我需要知道的是,什么是正确的工具开始?PHP走得那么远吗?或者在Rails上工作会是更好的选择吗?另外,普通的初级程序员是否可以做这样的事情?制作这样的应用程序需要做些什么?

html5 notifications web-notifications

3
推荐指数
1
解决办法
4850
查看次数

单击Chrome通知时转到已打开的选项卡

网页中的Javascript(不是Chrome应用或扩展程序)可以创建Chrome桌面通知,并设置在单击通知时要打开的URL.

var notification = new Notification('Notification title', {
  icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
  body: "Hey there! You've been notified!"
});

notification.onclick = function () {
  window.open("http://stackoverflow.com/a/13328397/1269037");
}
Run Code Online (Sandbox Code Playgroud)

是否可以创建一个通知,单击何时打开创建该通知的选项卡?

javascript notifications google-chrome web-notifications

3
推荐指数
2
解决办法
1860
查看次数

Rails 5 中的 Web 推送通知

我正在 Rails 5 中创建新应用程序。我想使用 Web 推送通知。我没有找到任何可以帮助我处理网络推送通知的文档。

任何帮助将是可观的。提前致谢。

ruby-on-rails web-notifications ruby-on-rails-5

3
推荐指数
1
解决办法
7272
查看次数

Chrome 59 隐身会话不会公开“允许”通知内容设置,当通过 API 请求权限时默认为“阻止”

Chrome Version 59.0.3071.109 (Official Build) (64-bit)(至少在 OSX 上)的行为与 58 不同,因为在隐身会话中,通过浏览器通知 API 请求权限的调用不会向用户显示权限请求弹出窗口;相反,它会自动静默地将权限设置为defaultto blocked

此外,在 URL 栏旁边的正常内容设置 UI 中,“通知权限”选项下拉列表中缺少“始终允许在此站点上”选项。

如何在 Chrome v59 中允许某些内容(如通知)专门用于隐身会话?

google-chrome incognito-mode web-notifications

3
推荐指数
1
解决办法
4026
查看次数