Outlook にピン留め可能な作業ウィンドウを実装する
アドイン コマンドの 作業ウィンドウ UX 図形は、開いているメッセージまたは会議出席依頼の右側に垂直作業ウィンドウを開きます。 これにより、アドインは、複数のテキスト フィールドに入力するなど、より詳細な操作のための UI を提供できます。 この作業ウィンドウは、メッセージの一覧を表示するときに閲覧ウィンドウに表示でき、メッセージをすばやく処理できます。
ただし、既定では、ユーザーが閲覧ウィンドウでメッセージのアドイン作業ウィンドウを開き、新しいメッセージを選択すると、作業ウィンドウは自動的に閉じられます。 頻繁に使用されるアドインの場合、ユーザーはそのウィンドウを開いたままにして、メッセージごとにアドインを有効化する手間がなくなることを望むでしょう。 ピン留め可能な作業ウィンドウを使用すると、アドインでユーザーにそのオプションを指定できます。
注:
ピン留め可能な作業ウィンドウ機能は 要件セット 1.5 で導入されましたが、現在は次を使用して Microsoft 365 サブスクライバーのみが使用できます。
- モダン Outlook on the web
- Windows 上の新しい Outlook
- Windows 上のクラシック Outlook 2016以降 (現在または Microsoft 365 Insider チャネルのユーザーの場合はビルド 7668.2000 以降、遅延チャネルのユーザーの場合はビルド 7900.xxxx 以降)
- Outlook on Mac (バージョン 16.13 (18050300) 以降)
重要
次の場合、ピン留め可能な作業ウィンドウは使用できません。
- 予定および会議
- Outlook.com
サポートされている Outlook モード
ピン留め可能な作業ウィンドウは、Outlook のメッセージ Compose モードとメッセージ読み取りモードの両方でサポートされています。 ただし、ピン留めは、さまざまなモードでサポートされていません。 これは、アドインが各モードでボタンと作業ウィンドウに異なる UI を持つことができるためです。 たとえば、ユーザーがメッセージの読み取り中にアドインの作業ウィンドウをピン留めし、新しいメッセージを作成した場合、作成しているメッセージからアドインの作業ウィンドウは表示されません。 作業ウィンドウを表示するには、ユーザーが作成しているメッセージからアドインをアクティブにする必要があります。 その後、ユーザーが作業ウィンドウをピン留めした場合、ユーザーが次に別のメッセージを作成した場合、作業ウィンドウはピン留めされたままになります。
作業ウィンドウのピン留めをサポートする
ピン留めのサポートを追加する際の最初の手順は、アドインのマニフェストで実行します。 マークアップは、アドインで使用するマニフェストの種類によって異なります。
作業ウィンドウを開くボタンまたはメニュー項目を定義する "actions" 配列の オブジェクトに、 true
に設定された "pinnable" プロパティを追加します。 次に例を示します。
"actions": [
{
"id": "OpenTaskPane",
"type": "openPage",
"view": "TaskPaneView",
"displayName": "OpenTaskPane",
"pinnable": true
}
]
完全な例については、command-demo のサンプル マニフェストの msgReadOpenPaneButton
コントロールをご覧ください。
注:
作業ウィンドウのピン留めは、閲覧ウィンドウが有効になっていないアドインや、最初にメッセージが選択されていない状態でアクティブ化されるアドインで自動的にサポートされます。 詳細については、「 閲覧ウィンドウを有効にしたり、メッセージを選択せずに Outlook アドインをアクティブ化する」を参照してください。
現在選択されているメッセージに基づいた UI の更新を処理する
現在のアイテムに基づいて作業ウィンドウの UI または内部変数を更新するには、変更の通知を受け取るイベント ハンドラの登録が必要になります。
イベント ハンドラを実装する
イベント ハンドラは、オブジェクト リテラルの単一パラメーターを受け入れる必要があります。 このオブジェクトの type
プロパティは、Office.EventType.ItemChanged
に設定されます。 イベントが呼び出されたときには、既に、Office.context.mailbox.item
オブジェクトは現在選択されているアイテムを反映するように更新されています。
function itemChanged(eventArgs) {
// Update UI based on the new current item.
updateTaskPaneUI(Office.context.mailbox.item);
}
重要
ItemChanged
イベントのイベント ハンドラーの実装は、Office.content.mailbox.item が null であるかどうかをチェックする必要があります。
// Example implementation.
function updateTaskPaneUI(item) {
// Assuming that item is always a read item (instead of a compose item).
if (item != null) console.log(item.subject);
}
イベント ハンドラーを登録する
Office.context.mailbox.addHandlerAsync メソッドを使用して、Office.EventType.ItemChanged
イベント用のイベント ハンドラを登録します。 これは、作業ウィンドウの Office.onReady
関数で行う必要があります。
Office.onReady(() => {
$(document).ready(() => {
// Set up the ItemChanged event.
Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, itemChanged);
updateTaskPaneUI(Office.context.mailbox.item);
});
});
複数選択での作業ウィンドウのピン留め
Outlook on the webおよび新しい Outlook on Windows では、アイテムの複数選択機能を実装するアドインの作業ウィンドウが開くと、Outlook クライアントに自動的にピン留めされます。 ユーザーが別のメール アイテムに切り替えたり、作業ウィンドウからピン アイコンを選択した場合でも、 ピン 留めされたままになります。 作業ウィンドウを閉じるには、作業ウィンドウから [ 閉じる ] ボタンを選択する必要があります。
逆に、従来の Outlook on Windows と Outlook on Mac では、ユーザーが別のメール アイテムに切り替えたときに、複数選択アドインの作業ウィンドウが自動的にピン留めされ、閉じられません。
ユーザーにデプロイする
Outlook アドインを AppSource に発行する予定で、ピン留め可能な作業ウィンドウで構成されている場合、アドインのピン留めされたコンテンツを静的にすることはできません。 つまり、ピン留めされたコンテンツは、メールボックスで現在開いているか選択されているメッセージまたは予定に応じて変更する必要があります。 これにより、アドインが AppSource 検証に合格します。
関連項目
ピン留め可能な作業ウィンドウを実装するサンプル アドインについては、GitHub の command-demo をご覧ください。
Office Add-ins