【问题标题】:PUBNUB: on "PUBNUB.subscribe", window.print() not workingPUBNUB:在“PUBNUB.subscribe”上,window.print() 不起作用
【发布时间】:2013-04-03 07:43:51
【问题描述】:

在我的一个应用中,我正在使用 PUBNUB 进行实时网络通信。

但我遇到了一些奇怪的问题,因为当我订阅一些频道时,window.print()(打印预览对话框未打开)根本无法正常工作。

& 如果我取消订阅频道,打印工作正常。

即使我在PubNub Console 上也试过这个。这可能是 pubnub 端的错误。

我们中的任何人都面临同样的问题并得到解决,那么请指导我。

注意:我在 chrome 的最新版本上使用它。

【问题讨论】:

  • 是的,我在 Pubnub 的控制台上试过这个,它根本不工作,PUBNUB 团队请调查一下。它的严重问题。
  • 请务必联系 PubNub 支持团队,因为他们反应迅速,并会迅速回复您。由于您通过远程发出打印信号违反了安全性,因此这当然不是一个好主意。然而,这是一个重复的线程,解决方案在这里 - github.com/pubnub/pubnub-api/issues/204#issuecomment-15909160
  • @PubNub,无论 window.print() 函数是否被远程触发,问题都会出现。当用户按下页面上的自定义打印按钮时,我们遇到了同样的问题,即在本地触发 print()。如果您还可以根据更一般的情况调整您的答案,那么它就会减少混乱。谢谢!
  • @Amir 您需要在发出window.print() 命令后取消订阅所有频道。然后在setTimeout( fn, 1000 ); 内重新订阅。确保将restore: true 设置为重新订阅以在打印过程中接收所有消息。

标签: javascript google-chrome printing real-time-updates pubnub


【解决方案1】:

如何使用 PubNub 和 JavaScript 远程打印

使用 PubNub 实时网络,您可以指示打印机代表用户进行远程打印。 WANRING:这通常不是一个好主意,并且可能对您的用户来说非常烦人。我们不建议您这样做。但是,如果您仍想继续前进,这里有解决方案!

<script src="https://pubnub.a.ssl.fastly.net/pubnub-3.4.3.min.js"></script>
<script>(function(){

    var channel = "my_channel";
    var pubnub  = PUBNUB.init({
        publish_key   : 'demo',
        subscribe_key : 'demo'
    });

    pubnub.subscribe({ restore: true, channel: channel, message: receive });

    function receive(message) {
        window.print();
        pubnub.unsubscribe({ channel : channel });
        setTimeout( function() { 
            pubnub.subscribe({
                restore : true,
                channel : channel,
                message : receive
            });
        }, 2500 );
    }
})();</script>

完整的工作示例

如果您想查看完整的示例:https://github.com/pubnub/javascript/blob/master/examples/print-remote/print.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多