我有一个由 C# ASP.Net MVC 5.0 支持的新闻网站,我想在管理员添加/编辑或删除新闻时向客户端浏览器推送通知。
所以我在所有页面中使用的模板中添加了一个信号器脚本。
_Layout.cshtml
var notificationsHub = $.connection.notificationHub;
$.connection.hub.start();
jQuery(function($) {
notificationsHub.client.Toast = function (title, body) {
var options = {
body: body,
};
var notification = new Notification(title, options);
};
});
并将此代码添加到新闻添加/编辑/删除完成后重定向的页面
<script>
$.connection.hub.start().done(function() {
notificationsHub.server.toast('@NotificationHub.Type.ToString()', '@Html.Raw(NotificationHub.Title)', '@Html.Raw(NotificationHub.Body)');
});
</script>
当我添加/编辑/删除新闻时,它工作正常,但问题是它会将通知推送到我站点中所有打开的选项卡。有没有什么技巧可以避免这种情况发生并在每个网站上只显示一个浏览器通知?
最佳答案
然后你必须知道打开的标签页数和使用的 URL。请参阅“How to get the number of tabs opened of my web in a browser using jquery?”SO 问题以了解出于隐私原因不希望这样做的讨论。
关于c# - 每个站点所有打开的选项卡仅浏览器通知一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427520/