我有一个基于移动Web的应用程序,我希望用户仅在他们和另一个人之间使用聊天窗口。
我有一个javascript按钮可以打开一个聊天窗口,但是它是通过converse.initalize方法完成的,所有配置变量都传递给了它。在移动视图上,只允许用户关闭聊天窗口,没有最小化选项可用。
是否有一种方法可以从converse.js外部再次打开聊天窗口,而无需再次使用initialize方法?自从以前打开聊天窗口以来,似乎有点沉重,我看不到用于执行此操作的公共api,也无法看到使用插件执行此操作的方法,因为button事件完全相反。
答案 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