我们正在使用 Skype Web SDK ( https://msdn.microsoft.com/en-us/skype/websdk/docs/skypewebsdk ) 构建一个 Web 应用程序。我们同时使用音频和 IM 功能与其他方建立联系。
目前我们面临以下问题:如果我们的应用程序正在与另一方对话(例如使用 Skype for Business 桌面客户端)并且用户离开或重新加载页面,则另一方不会收到有关离开用户的通知.
对于音频对话,结果如下:对方仍在通话中,离开的唯一指示是对方听不到任何声音。
对于 IM 对话,结果如下: 如果对方在此对话中发送 IM,则会收到无法传递消息的通知。
我们尝试使用 onbeforeunload 事件在页面卸载之前离开对话。回调在 IE 11 和 Chrome 中都执行,但只有在 Chrome 中,用户才会真正离开对话(使用 IM 对话进行测试,因为 Chrome 不支持音频/视频)。
window.onbeforeunload = function() {
// conversation is the conversation we're currently in
conversation.leave().then(function () {
client.conversationsManager.conversations.remove(conversation);
});
};
由于我们依赖于音频功能,我们不能简单地仅切换到 Chrome。有什么方法可以确保在 Internet Explorer 中重新加载/离开页面时清理对话?