2016-12-17 5 views
4

К Web Notification Я имею в виду this (интерфейс уведомлений API уведомлений используется для настройки и отображения уведомлений рабочего стола пользователю).
У меня есть веб-приложение Asp.Net MVC, и у меня есть кнопка на моей странице, которая должна вызывать уведомление для клиентов.
Я также использовал signalr для вызова функции уведомления о звонках и вызовах.Уведомления Firefox Desktop не отображаются, когда открыты несколько вкладок

моего layout.cshtml выглядит следующим образом:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>@ViewBag.Title - My ASP.NET Application</title> 
</head> 
<body> 
    <button id="btn" type="button">click</button> 
    @RenderBody() 
    <script src="~/Scripts/jquery-1.10.2.min.js"></script> 
    <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script> 
    <script src="~/signalr/hubs"></script> 
    <script> 
     jQuery(function ($) { 
      var myHub = $.connection.chatHub; 
      myHub.client.addNewMessageToPage = function (title, message) { 
       var options = { 
        body: message, 
        tag: 'aaa' 
       } 

       // check permissions if already granted 
       if (Notification.permission === "granted") { 
        var notification = new Notification(title, options); 
       } else if (Notification.permission !== 'denied') { 
        // request permission 
        Notification.requestPermission(function (permission) { 
         // If the user accepts, let's create a notification 
         if (permission === "granted") { 
          var notification = new Notification(title, options); 
         } 
        }); 
       } 

       console.log('the hub method called sucessfully'); 
      } 
      $.connection.hub.logging = true; 
      $.connection.hub.start().done(function() { 
       $('#btn').on('click', function() { 
        myHub.server.send('foo', 'bar'); 
       }); 
      }); 
     }); 
    </script> 
</body> 
</html> 

Проблема заключается в том, что уведомления толчка перестает работать/показ в светлячок, когда у меня есть несколько страниц моего приложения открытого. (он работает, когда одна вкладка открыта).
эта ошибка происходит только в firefox и хорошо работает в chrome и IE.

animated gif

обновление 1: Я думаю, что его не signalr проблемы, так как метод хаба вызываются.
эта линия называется на всех закладках: console.log('the hub method called sucessfully');
и протоколирование signalr говорит, что:

SignalR: Invoking myhub.Send jquery.signalR-2.2.1.min.js 
SignalR: Triggering client hub event 'addNewMessageToPage' on hub 'MyHub'. jquery.signalR-2.2.1.min.js 
foo bar 
SignalR: Invoked myhub.Send jquery.signalR-2.2.1.min.js 

ответ

0

Ваш вопрос похож на this one.

И я предлагаю использовать IWC-SignalR из this answer.

+0

Я попробовал ответить. к сожалению, это не устраняет мою проблему. Я уточнил свой вопрос. – mhesabi

0

Эта проблема связана с Web Socket. Сначала вы должны включить свой веб-сайт.

$.connection.hub.logging = true; 

, то вы можете использовать функцию запуска гнезда пользователя для обнаружения ваших соединений.

$.connection.hub.start({ transport: 'webSockets' }).done(function() { .. }); 
1

Это ошибка в Firefox.

Способ, который работал для меня, назывался Уведомлением в другое время. Это не полное решение, но работает хорошо.

var randomTime = Math.floor((Math.random() * 20) + 1) * 50; 

      setTimeout(function() { 
       newNotification = new Notification(Title, NotificationContent); 
      }, randomTime);