Web推送通知针对多个打开的选项卡显示多次

时间:2018-07-02 06:16:45

标签: javascript push-notification signalr

我已在Web应用程序中添加了Web推送通知;在主版式(asp.net MVC)中(使用signalR)。

$(function () {
    // Declare a proxy to reference the hub.
    var notifications = $.connection.notificationHub;

    //debugger;
    // Create a function that the hub can call to broadcast messages.
    notifications.client.updateMessages = function () {
        getMeetingNotifications()    
    };
    // Start the connection.
    $.connection.hub.start().done(function () {
        // alert("connection started")
        getMeetingNotifications();
    }).fail(function (e) {
        alert(e);
    });
});

如果为同一应用程序打开了多个选项卡。它为同一活动推送多个通知。 我通过添加标签字段解决了这个问题。

function getMeetingNotifications() {
    $.ajax({
        url: '@Url.Action("Index", "Home")',
        cache: false,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            if (data.Message != null) {
                Push.create("Notifications", {
                    body: data.Message,
                    icon: '../images/logo.png',
                    tag: data.Id,
                    timeout: 10000,
                    onClick: function () {
                        window.focus();
                        this.close();
                    }
                });
            }
        }
    });
}

但是现在它闪烁了,即通知似乎重叠了。

有没有办法只显示一个没有重叠的通知(即使同时打开多个标签页)?

0 个答案:

没有答案