【问题标题】:Open conversejs chat window after it has already been closed with initialize在已使用初始化关闭后打开 conversejs 聊天窗口
【发布时间】:2018-07-11 13:51:35
【问题描述】:

我有一个基于移动网络的应用程序,我希望用户只使用他们和另一个人之间的聊天窗口。

我有一个打开聊天窗口的 javascript 按钮,但它是通过 converse.initialize 方法完成的,所有配置变量都传递给它。在移动视图上,用户只能关闭聊天窗口,没有可用的最小化选项。

有没有办法从 converse.js 外部再次打开聊天窗口而无需再次使用初始化方法?这似乎有点沉重,因为之前打开了聊天窗口,我看不到用于执行此操作的公共 api,并且我看不到使用插件执行此操作的方法,因为按钮事件是外部对话。

【问题讨论】:

    标签: converse.js


    【解决方案1】:

    可能有更好的方法来做到这一点,但万一它有帮助......

    我试图破译调试日志,我认为,即使在 Converse 中关闭了聊天窗口,与我的 ejabberd 服务器的连接也没有断开。我尝试在触发窗口关闭事件时触发断开连接。

    this._converse.on('chatBoxClosed', function (chatbox) {
      this._converse.connection.disconnect();
    });

    此时 Converse 很聪明,如果 auto_reconnect 设置为 true,它会尝试重新打开窗口并重新加入房间,所以我不得不将其关闭。

    window.converse.initialize({
      auto_reconnect: true,

    【讨论】:

      【解决方案2】:

      有没有办法从 converse.js 外部再次打开聊天窗口而无需再次使用初始化方法?

      不是来自 converse.js 外部,但您可以为 converse.js 注册一个插件,并通过调用 _converse.api.chats.open() 从插件内部打开聊天。

      API 记录在这里:

      https://conversejs.org/docs/html/developer_api.html#the-chats-grouping

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        • 2020-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多