Outlookアドインで認証用のダイアログを使用します。アドインには、まずダイアログAPIのサポートをチェックし、アドインがフレーム化されているかどうかを確認するロジックがあります。その場合、代わりに認証のための新しいウィンドウがポップされます。最近、ダイアログAPIがOWAに照らされ、私たちにいくつかの問題が生じました。OWA:ダイアログAPIのサポート
私たちが認証(私たちはADAL.js
を使用)を実行し、Officeを初期化する順序に関するいくつかの以前の問題を修正しました。しかし、いったんそれらを過ぎてしまえば、ダイアログはOffice.context.ui.messageParent
を使ってアドインと通信できるようには見えません。
さらに、アドインがMicrosoft.Office.WebExtension.EventType.DialogEventReceived
イベントにサブスクライブしていても、ダイアログが閉じるとダイアログボックスが表示されません。通常、ダイアログボックスを閉じると、エラーコード12006
が返されます。
ダイアログを単独で開き、依然としてOWAのアドインと通信できないことを確認した単純なOutlookアドインを作成しました。私は以下のコードを含んでいます。
は、アドインコード:
Office.initialize = function (reason) {
$(document).ready(function() {
var resultArea = $("span");
$("button").click(function() {
resultArea.text("Opening dialog");
Office.context.ui.displayDialogAsync(
window.location.origin + "/TestAddin/Dialog.html",
{ height: 75, width: 25 },
function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
var dialog = asyncResult.value;
dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, function handleAuthDialogMessage(message) {
dialog.close();
resultArea.text(message);
});
dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogEventReceived, function handleAuthDialogMessage(message) {
resultArea.text("Event encountered");
});
} else {
resultArea.text("Dialog failed");
}
});
});
})
};
をダイアログコード:今のところ
Office.initialize = function (reason) {
$(document).ready(function() {
Office.context.ui.messageParent("dialog-opened");
})
};
私はそれが、その場合、それをして(枠されているかどうかを最初にチェックするために私たちのアドインを調整してきましたダイアログAPIをチェックまたは使用する前に、新しい認証ウィンドウを開きます)。このアプローチにより、生産バグを修正し、OWA認証を再度有効にすることができます。しかし、私はそれが動作しているか、私たちのアドインが固定されているダイアログを理解したいです:)
誰もがこの問題を既に認識していますか?
---更新2/22 ---
これでダイアログが親にメッセージできるようになりました。残念ながら、ダイアログを閉じてもイベントがアドインに送信されることはありません。
インターネット展開バージョンのアドインを共有することができれば、簡単に再作成することができます。 –