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 のみです (Chrome ではオーディオ/ビデオがサポートされていないため、IM 会話でテストされています)。
window.onbeforeunload = function() {
// conversation is the conversation we're currently in
conversation.leave().then(function () {
client.conversationsManager.conversations.remove(conversation);
});
};
オーディオ機能に依存しているため、単純に Chrome のみに切り替えることはできません。Internet Explorer でページの再読み込み/終了時に会話が確実にクリーンアップされるようにする方法はありますか?