モバイル デバイスの Outlook でアドイン コマンドのサポートを追加する

モバイル デバイスで Outlook でアドイン コマンドを使用すると、ユーザーは、Outlook on the web、Windows (クラシックと新しい (プレビュー))、Mac で既に持っているのと同じ機能 (いくつかの制限付き) にアクセスできます。 Outlook モバイルのサポートを追加するには、アドイン マニフェストを更新し、場合によってはモバイル シナリオのコードを変更する必要があります。

マニフェストを更新する

Outlook mobile でアドイン コマンドを有効にする最初の手順は、アドイン マニフェストでそれらを定義することです。

  1. "extensions.ribbons.requirements.formFactors" 配列で、"mobile" を項目として追加します。 完了すると、配列は次のようになります。

    "formFactors": [
        "mobile",
        <!-- Typically there will be other form factors listed. -->
    ]
    
  2. メモ作成または顧客関係管理 (CRM) アプリケーションのプロバイダーを統合するアドインなど、アドインで予定出席者モードを使用する場合は、"extensions.ribbons.contexts" 配列に "logEventMeetingDetailsAttendee" を追加します。 次に例を示します。

    "contexts": [
        "meetingDetailsAttendee",
        "logEventMeetingDetailsAttendee"
    ],
    
  3. アドインで統合オンライン会議プロバイダーを使用している場合は、"extensions.ribbons.contexts" 配列に "onlineMeetingDetailsOrganizer" を追加します。 次に例を示します。

    "contexts": [
        "meetingDetailsOrganizer",
        "onlineMeetingDetailsOrganizer"
    ],
    
  4. "extensions.ribbons.tabs" 配列で、"builtInTabId" が "TabDefault" のタブを見つけます。 子の "customMobileRibbonGroups" 配列を追加します (既存の "groups" プロパティのピアとして)。 この配列内に オブジェクトを作成し、次の操作を行います。

    • 適切な "id" と "label" の値を設定します。
    • "controls" 配列内のオブジェクトをCreateしてボタンを表し、次のように構成します。
      • 適切な "id" と "label" の値を設定します。
      • "buttonType" を "MobileButton" に設定します。
      • "actionId" プロパティに関数を割り当てます。 これは、"extensions.runtimes.actions" 配列内の オブジェクトの "id" と一致する必要があります。
      • 必要なアイコンが 9 つすべてであることを確認します。

    次に例を示します。

    "tabs": [
        {
            "builtInTabId": "TabDefault",
            "groups": [
                <-- non-mobile group objects omitted -->
            ],
            "customMobileRibbonGroups": [
                {
                    "id": "mobileApptComposeGroup",
                    "label": "Contoso Meeting",
                    "controls": [
                        { 
                            "id": "mobileInsertMeetingButton",
                            "label": "Add Meeting",
                            "buttonType": "MobileButton",
                            "actionId": "insertContosoMeeting",
                            "icons": [
                                {
                                    "scale": 1,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 1,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 1,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                },                                
                                {
                                    "scale": 2,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 2,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 2,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                },                                
                                {
                                    "scale": 3,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 3,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 3,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]    
    

コードに関する考慮事項

モバイル用のアドインの設計には、追加の考慮事項がいくつか導入されています。

Exchange Web サービスの代わりに REST を使用する

Office.context.mailbox.makeEwsRequestAsync メソッドは、Outlook Mobile ではサポートされていません。 可能な場合には、アドインは優先的に Office.js API から情報を取得します。 Office.js API によって表示されていない情報がアドインで必要な場合、Outlook REST APIs を使用してユーザーのメールボックスにアクセスする必要があります。

メールボックス要件セット 1.5 では、REST API と互換性のあるアクセス トークンを要求できる Office.context.mailbox.getCallbackTokenAsync の新しいバージョンと、ユーザーの REST API エンドポイントを検索するために使用できる新しい Office.context.mailbox.restUrl プロパティが導入されました。

ピンチによるズーム

既定では、ユーザーは "ピンチ ズーム" ジェスチャを使用して作業ウィンドウを拡大できます。 これがシナリオにとって意味がない場合は、HTML のピンチ ズームを無効にしてください。

作業ウィンドウを閉じる

Outlook モバイルでは、作業ウィンドウは画面全体を占め、既定ではユーザーがメッセージに戻るように閉じる必要があります。 シナリオが完了したら、 Office.context.ui.closeContainer メソッドを使用して作業ウィンドウを閉じる方法を検討してください。

作成モードと予定

現在、Outlook モバイルのアドインでは、メッセージを読み取るときにのみアクティブ化がサポートされています。 アドインは、メッセージを作成するとき、または予定を表示または作成するときにアクティブ化されません。 しかし、中には例外もあり、

  1. オンライン会議プロバイダー統合アドインは、予定オーガナイザー モードでアクティブ化します。 この例外 (使用可能な API を含む) の詳細については、「オンライン会議プロバイダーの Outlook モバイル アドインをCreateする」を参照してください。
  2. 予定メモやその他の詳細を顧客関係管理 (CRM) またはメモ作成サービスに記録するアドインは、予定出席者モードでアクティブになります。 この例外 (使用可能な API を含む) の詳細については、「 Outlook モバイル アドインの外部アプリケーションに予定メモをログに記録する」を参照してください。
  3. イベントベースのアドインは、イベントが OnNewMessageCompose 発生したときにアクティブになります。 この例外 (サポートされているその他の API を含む) の詳細については、「 Outlook モバイル アドインでイベント ベースのアクティブ化を実装する」を参照してください。

サポートされている API

Outlook モバイルではメールボックス 要件セット 1.5 までサポートされていますが、後の要件セットから追加の API を実装して、Outlook モバイルでのアドインの機能をさらに拡張できるようになりました。 モバイル アドインに実装できる API のガイダンスについては、「モバイル デバイス上の Outlook でサポートされている Outlook JavaScript API」を参照してください。

関連項目