使用初始化关闭conversejs聊天窗口后,打开该窗口

时间:2018-07-11 13:51:36

标签: converse.js

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

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

是否有一种方法可以从converse.js外部再次打开聊天窗口,而无需再次使用initialize方法?自从以前打开聊天窗口以来,似乎有点沉重,我看不到用于执行此操作的公共api,也无法看到使用插件执行此操作的方法,因为button事件完全相反。

2 个答案:

答案 0 :(得分:0)

也许有更好的方法,但万一有帮助...

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

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

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

window.converse.initialize({
  auto_reconnect: true,

答案 1 :(得分:0)

  

是否有一种方法可以从converse.js外部再次打开聊天窗口,而无需再次使用initialize方法?

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

此处记录了该API:

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