2017-06-12 20 views
0

executeFunctionリボンボタンでdialogApiを使用してダイアログを実行すると、executeFunctionイベントはOutlook for Windowsで完了しません。 マニフェストでは、関数 "x"を呼び出してダイアログをトリガし、イベントハンドラを追加します。OutlookアドインWindows用OutlookでExecuteFunctionリボンボタンが完了しない

function x(evt) { _event = evt; ...} 
Office.context.ui.displayDialogAsync(settings, function (asyncResult) { 
_dialog = asyncResult.dialog; 
_dialog.addEventHandler(Office.EventType.DialogMessageReceived, messageHandler); 
_dialog.addEventHandler(Office.EventType.DialogEventReceived, eventHandler); 
}) 
function messageHandler() { _event.completed(); } 
function eventHandler() { _event.completed(); } 

ExecuteFunction loader

更新:
1.マニフェストに、機能を実行するリボンボタンの定義があります。この関数は、リボンボタンクリックから渡されたイベントパラメータを受け入れ、ダイアログを開くためにOffice.context.ui.displayDialogAsync APIを呼び出します。イベントパラメータは、後でダイアログイベントハンドラで呼び出すことができるように、グローバル変数に保存されます。リボンボタンをクリックすると、ダイアログは正常に開きますが、ダイアログが閉じると、event.completedは呼び出されないようです。添付された画像は約10〜15分間実行されます。
2.コードスニペットは元の転記から添付されています。
3.使用されるプラットフォームは、Windows 11のIE 11およびEdgeを搭載したOutlook 2016です。
*異常な動作:デバッグの目的で、各イベントハンドラで任意の非同期要求がトリガされていました。 event.completedが呼び出される前に要求が行われると、イベントは正常に完了します。

+0

こんにちはjchoi76!あなたの投稿に感謝します。あなたの問題をよりよく理解できるように、情報を追加してください: 1)問題を再現するための正確な手順を記述できますか? 2)ダイアログページ内で実行するコードを共有できますか? 3)使用しているWindows、Internet Explorer、Desktop Outlookのバージョンは? –

答えて

0

私は、次のコードをテストし、それが動作します:

var globalEvent; 

function eventHandler() 
{ 
    globalEvent.completed(true); 
} 

function dialogCallback(asyncResult) 
{ 
    _dialog = asyncResult.value; 
    _dialog.addEventHandler(Office.EventType.DialogEventReceived, eventHandler); 
} 

function ExecuteFunctionMailRead1(event) 
{ 
    globalEvent = event; 
    Office.context.ui.displayDialogAsync("http://contoso.com/", {height: 30, width: 20}, dialogCallback); 
} 

私は問題はあなたがする必要があるということだと思う: _dialog = asyncResult.value。 の代わりに _dialog = asyncResult。 ダイアログ;

関連する問題