Outlook モバイル アドインでイベント ベースのアクティブ化を実装する
イベント ベースのアクティブ化機能を使用して、Android または iOS 上の Outlook で特定のイベントが発生したときに、新しいメッセージの作成などの操作を自動的にアクティブ化して完了するアドインを開発します。
次のセクションでは、構成中の新しいメッセージに署名を自動的に追加する Outlook モバイル アドインを開発する方法について説明します。 ここでは、モバイル アドインでイベント ベースのアクティブ化を実装する方法のサンプル シナリオについて説明します。 現在アドインで他のシナリオやサポートされているイベントを調べて、モバイル ユーザー エクスペリエンスを大幅に向上させます。
Outlook on the web、Windows (新規およびクラシック) および Mac でイベント ベースのアドインを実装する方法については、「イベント ベースのアクティブ化のために Outlook アドインを構成する」を参照してください。
注:
Outlook on Android および iOS では、メールボックス要件セット 1.5 までのみサポートされます。 ただし、イベント ベースのアクティブ化機能をサポートするために、後の要件セットの一部の API がモバイル クライアントで有効になっています。 この例外の詳細については、「 サポートされるその他の API」を参照してください。
サポートされているイベントとクライアント
イベント標準名とアドインのみのマニフェスト名 | Microsoft 365 名の統合アプリ マニフェスト | 説明 | サポートされるクライアント |
---|---|---|---|
OnNewMessageCompose |
newMessageComposeCreated | 新しいメッセージ (返信、全員への返信、転送を含む) の作成時に発生しますが、下書きの編集では発生しません。 |
|
OnMessageRecipientsChanged |
messageRecipientsChanged | メッセージの作成中に受信者を追加または削除するときに発生します。 イベント固有のデータ オブジェクト: RecipientsChangedEventArgs |
|
環境を設定する
この機能を実行するには、Android または iOS でサポートされているバージョンの Outlook ( サポートされているイベントとクライアントを参照) と Microsoft 365 サブスクリプションが必要です。 次に、Office アドイン用 Yeoman ジェネレーターを使用してアドイン プロジェクトを作成する Outlook クイック スタートを完了します。
マニフェストを構成する
マニフェストを構成する手順は、クイック スタートで選択したマニフェストの種類によって異なります。
注:
Outlook on Android および iOS で実行するイベント ベースのアドインを開発する場合、Microsoft 365 の統合アプリ マニフェストは、アドインが特定のイベントを処理する場合にのみ使用できることに注意してください。 サポートされるイベントについては、「 サポートされているイベントとクライアント」を参照してください。
関数コマンドを設定する場合と同様に、"extensions.runtimes" プロパティを構成します。 詳細については、「 関数コマンドのランタイムを構成する」を参照してください。
"extensions.ribbons.contexts" 配列で、
mailRead
を項目として追加します。 完了すると、配列は次のようになります。"contexts": [ "mailRead" ],
"extensions.ribbons.requirements.formFactors" 配列で、"mobile" を項目として追加します。 完了すると、配列は次のようになります。
"formFactors": [ "mobile", <!-- Typically there will be other form factors listed. --> ]
"extensions" 配列の オブジェクトのプロパティとして、次の "autoRunEvents" 配列を追加します。
"autoRunEvents": [ ]
"autoRunEvents" 配列に、次のようなオブジェクトを追加します。 このコードについては、次の点に注意してください。
- "events" プロパティは、ハンドラーをイベントにマップします。
- "events.type" は、 サポートされているイベントとクライアントに記載されている型のいずれかである必要があります。
- "events.actionId" の値は、「 イベント ハンドラーを実装する」で作成する関数の名前です。
- "events" 配列には複数のオブジェクトを含めることができます。
{ "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.5" } ], "scopes": [ "mail" ] }, "events": [ { "type": "newMessageComposeCreated", "actionId": "onNewMessageComposeHandler" }, ] }
ヒント
Outlook アドインのマニフェストの詳細については、「 Office アドイン マニフェスト 」および「 モバイル デバイス上の Outlook でのアドイン コマンドのサポートの追加」を参照してください。
イベント ハンドラを実装する
OnNewMessageCompose
イベントが発生したときにアドインがタスクを完了できるようにするには、JavaScript イベント ハンドラーを実装する必要があります。 このセクションでは、作成中の新しいメッセージに署名を追加する onNewMessageComposeHandler
関数を作成し、署名が追加されたことを通知するメッセージを表示します。
同じクイック スタート プロジェクトから ./src ディレクトリに移動し、 launchevent という名前の新しいフォルダーを作成します。
./src/launchevent フォルダーに、 という名前の新しいファイル launchevent.js作成します。
作成した launchevent.js ファイルを開き、次の JavaScript コードを追加します。
/* * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. * See LICENSE in the project root for license information. */ // Add start-up logic code here, if any. Office.onReady(); function onNewMessageComposeHandler(event) { const item = Office.context.mailbox.item; const signatureIcon = "iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAMAAAC7faEHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMFRskAAAAQdFJOUwAQIDBAUGBwgI+fr7/P3+8jGoKKAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABT0lEQVQ4T7XT2ZalIAwF0DAJhMH+/6+tJOQqot6X6joPiouNBo3w9/Hd6+hrYnUt6vhLcjEAJevVW0zJxABSlcunhERpjY+UKoNN5+ZgDGu2onNz0OngjP2FM1VdyBW1LtvGeYrBLs7U5I1PTXZt+zifcS3Icw2GcS3vxRY3Vn/iqx31hUyTnV515kdTfbaNhZLI30AceqDiIo4tyKEmJpKdP5M4um+nUwfDWxAXdzqMNKQ14jLdL5ntXzxcRF440mhS6yu882Kxa30RZcUIjTCJg7lscsR4VsMjfX9Q0Vuv/Wd3YosD1J4LuSRtaL7bzXGN1wx2cytUdncDuhA3fu6HPTiCvpQUIjZ3sCcHVbvLtbNTHlysx2w9/s27m9gEb+7CTri6hR1wcTf2gVf3wBRe3CMbcHYvTODkXhnD0+178K/pZ9+n/C1ru/2HAPwAo7YM1X4+tLMAAAAASUVORK5CYII="; // Get the sender's account information. item.from.getAsync((result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); event.completed(); return; } // Create a signature based on the sender's information. const name = result.value.displayName; const options = { asyncContext: name, isInline: true }; item.addFileAttachmentFromBase64Async(signatureIcon, "signatureIcon.png", options, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); event.completed(); return; } // Add the created signature to the message. const signature = "<img src='cid:signatureIcon.png'>" + result.asyncContext; item.body.setSignatureAsync(signature, { coercionType: Office.CoercionType.Html }, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); event.completed(); return; } // Show a notification when the signature is added to the message. // Important: Only the InformationalMessage type is supported in Outlook mobile at this time. const notification = { type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage, message: "Company signature added.", icon: "none", persistent: false }; item.notificationMessages.addAsync("signature_notification", notification, (result) => { if (result.status === Office.AsyncResultStatus.Failed) { console.log(result.error.message); event.completed(); return; } event.completed(); }); }); }); }); }
変更内容を保存します。
イベント処理 JavaScript ファイルへの参照を追加する
./src/commands/commands.html ファイルに、イベント ハンドラーを含む JavaScript ファイルへの参照があることを確認します。
./src/commands フォルダーに移動し、commands.htmlを開きます。
終了 ヘッド タグ (
</head>
) の直前に、イベント ハンドラーを含む JavaScript ファイルのスクリプト エントリを追加します。<script type="text/javascript" src="../launchevent/launchevent.js"></script>
変更を保存します。
アドインをテストして検証する
ガイダンスに従って、 アドインをテストして検証します。
Outlook on Windows (新規またはクラシック)、Mac、または Web でアドインをサイドロードします。
Android または iOS で Outlook を開きます。 デバイスで Outlook を既に開いている場合は、再起動します。
新しいメッセージを作成します。 イベント ベースのアドインは、メッセージに署名を追加します。 モバイル デバイスに保存された署名がある場合は、作成したメッセージに簡単に表示されますが、すぐにアドインによって追加された署名に置き換えられます。
動作と制限事項
Outlook モバイル用のイベント ベースのアドインを開発するときは、次の機能の動作と制限事項に注意してください。
- イベント ベースのアドインは実行時間が短く軽量であることが予想されるため、アドインはアクティブ化された時点から最大 60 秒間実行できます。 アドインがイベントの処理を完了したことを通知するには、イベント ハンドラーが event.completed メソッドを呼び出す必要があります。 アドイン操作は、ユーザーが作成ウィンドウを閉じるか、メッセージを送信したときにも終了します。
- 一度に実行できるアドインは 1 つだけです。 ユーザーのアカウントに複数のイベント ベースのアドインがインストールされている場合、それらは順番に実行されます。
- モバイル デバイスの Outlook アイコンを長押しした後、[ 新しいメール ] を選択して新しいメッセージを作成すると、
OnNewMessageCompose
イベントを処理するイベント ベースのアドインが、イベントの初期化と処理を完了するまでに数秒かかることがあります。 -
OnNewMessageCompose
イベントを処理するイベント ベースのアドインを使用する場合、作成中の新しいメッセージに変更が加えられない場合、下書きは保存されません。 これは、アドインが Office.context.mailbox.item.body.setSignatureAsync メソッドを使用して署名を追加した場合でも適用されます。 -
OnNewMessageCompose
イベントが発生したときに署名を管理するイベント ベースのアドインで、メッセージの下部から [返信] を選択すると、アドインによって署名がアクティブになり、メッセージに追加されます。 ただし、署名は現在のビューには表示されません。 追加された署名を含むメッセージを表示するには、作成ウィンドウを全画面表示に展開します。 - アドインの機能を強化するために、後の要件セットからサポートされている API を作成モードで使用できます。 詳細については、「 サポートされるその他の API」を参照してください。
サポートされるその他の API
Outlook モバイルでは 、メールボックス要件セット 1.5 までの API がサポートされていますが、Outlook Mobile でイベント ベースのアドインの機能をさらに拡張するために、以降の要件セットからの追加 API が作成モードでサポートされるようになりました。
- Office.context.mailbox.item.addFileAttachmentFromBase64Async
- Office.context.mailbox.item.disableClientSignatureAsync
- Office.context.mailbox.item.from.getAsync
- Office.context.mailbox.item.getComposeTypeAsync
- Office.context.mailbox.item.body.setSignatureAsync
- Office.context.mailbox.item.sessionData
モバイル デバイス上の Outlook でサポートされる API の詳細については、「モバイル デバイス上の Outlook でサポートされる Outlook JavaScript API」を参照してください。
ユーザーにデプロイする
イベント ベースのアドインは、organizationの管理者がデプロイする必要があります。 Microsoft 365 管理センターを使用してアドインを展開する方法のガイダンスについては、「イベント ベースのアクティブ化のために Outlook アドインを構成する」の「ユーザーに展開する」セクションを参照してください。
関連項目
Office Add-ins