Office.DevicePermission interface

アドインがデバイス機能にアクセスするためのアクセス許可をユーザーに要求するメソッドを提供します。 ユーザーのデバイス機能には、カメラ、位置情報、マイクが含まれます。

注釈

アプリケーション: この API は、Microsoft Edge や Google Chrome などの Chromium ベースのブラウザーで実行する場合、次の Office アプリケーションでサポートされます。

  • Excel on the web

  • Outlook on the web

  • PowerPoint on the web

  • Word on the web

また、 新しい Outlook on Windows でもサポートされています。

要件セット: DevicePermission 1.1

メソッド

requestPermissions(permissions)

カメラやマイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドは Promise を返します。 Excel、PowerPoint、Word アドインで使用します。

ユーザーが初めてデバイス機能へのアクセスを許可した場合、promise は true で解決されます。 その後、デバイス機能を使用するコードを実行する前にアドインを再読み込みする必要があります。 たとえば、 window.location.reload() を呼び出してアドインを再読み込みできます。 ユーザーが以前にデバイス機能へのアクセスを許可していた場合、Promise は false で解決されます。 アクセス許可は既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーがデバイス機能へのアクセスを拒否すると、promise は「ユーザーがアクセス許可要求を拒否しました」というエラー メッセージで拒否されます。

requestPermissionsAsync(permissions, options, callback)

カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。

requestPermissionsAsync(permissions, callback)

カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。

メソッドの詳細

requestPermissions(permissions)

カメラやマイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドは Promise を返します。 Excel、PowerPoint、Word アドインで使用します。

ユーザーが初めてデバイス機能へのアクセスを許可した場合、promise は true で解決されます。 その後、デバイス機能を使用するコードを実行する前にアドインを再読み込みする必要があります。 たとえば、 window.location.reload() を呼び出してアドインを再読み込みできます。 ユーザーが以前にデバイス機能へのアクセスを許可していた場合、Promise は false で解決されます。 アクセス許可は既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーがデバイス機能へのアクセスを拒否すると、promise は「ユーザーがアクセス許可要求を拒否しました」というエラー メッセージで拒否されます。

requestPermissions(permissions: Office.DevicePermissionType[]): Promise<boolean>;

パラメーター

permissions

Office.DevicePermissionType[]

アドインがアクセスを要求しているデバイス機能の配列。 Web バージョンの Excel、PowerPoint、Word では、アドインはユーザーのカメラとマイクへのアクセスのみを要求できます。 ユーザーの位置情報へのアクセスがブロックされます。

返品

Promise<boolean>

注釈

重要:

  • この方法は、Outlook アドインではサポートされていません。代わりに、 requestPermissionsAsync メソッドを使用してください。

  • アドインが Office on the web デスクトップ クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、requestPermissions を呼び出す前に、アドインが実行されているプラットフォームを確認してください。 Office.context.platform を使用して、Office.PlatformType.OfficeOnlineを返すことを確認します。 それ以外の場合、 requestPermissions 呼び出しはエラーを返します。

  • ユーザーがダイアログから [許可 ] を選択した場合、アクセス許可は、アドインがアンインストールされるか、アドインが実行されているブラウザーのキャッシュがクリアされるまで保持されます。 ユーザーが自分のカメラやマイクへのアドインへのアクセスを変更する場合は、アドインをアンインストールするか、ブラウザーのキャッシュをクリアする必要があります。

  • ユーザーがダイアログから [1 回許可 ] を選択した場合、アクセス許可は、アドインが実行されているブラウザー タブまたはウィンドウを閉じるまで保持されます。

  • ユーザーがダイアログで [ 拒否 ] を選択すると、次にアドインでユーザーのデバイス機能へのアクセスが必要になったときに、ユーザーに再度アクセス許可が要求されます。

  • ユーザーの位置情報へのアクセスは、Excel、PowerPoint、Word ではサポートされていません。 requestPermissionsAsync メソッドを使用する Windows 上の Outlook on the web と新しい Outlook でのみサポートされます。

// Request permission from a user to access their camera and microphone.
if (Office.context.platform === Office.PlatformType.OfficeOnline) {
    const deviceCapabilities = [
        Office.DevicePermissionType.camera,
        Office.DevicePermissionType.microphone
    ];
    Office.devicePermission
        .requestPermissions(deviceCapabilities)
        .then((isGranted) => {
            if (isGranted) {
                console.log("Permission granted.");
                // Reload your add-in before you run code that uses the device capabilities.
                location.reload();
            } else {
                console.log("Permission has been previously granted and is already set in the iframe.");

                // Since permission has been previously granted, you don't need to reload your add-in.

                // Do something with the device capabilities.
            }
        })
        .catch((error) => {
            console.log("Permission denied.");
            console.error(error);

            // Do something when permission is denied.
        });
}

requestPermissionsAsync(permissions, options, callback)

カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。

requestPermissionsAsync(permissions: Office.DevicePermissionType[], options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;

パラメーター

permissions

Office.DevicePermissionType[]

アドインがアクセスを要求しているデバイス機能の配列。 Windows の Outlook on the web および新しい Outlook では、アドインはユーザーのカメラ、位置情報、マイクへのアクセスを要求できます。

options
Office.AsyncContextOptions

asyncContext プロパティを含むオブジェクト リテラル。 コールバック関数でアクセスするオブジェクトを asyncContext プロパティに割り当てます。

callback

(asyncResult: Office.AsyncResult<boolean>) => void

メソッドが完了すると、callback パラメーターで渡された関数が、Office.AsyncResult オブジェクトである 1 つのパラメーター asyncResult を指定して呼び出されます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を付与すると、asyncResult.value プロパティでtrueが返されます。 その後、デバイス機能を使用するコードを実行する前にアドインを再読み込みする必要があります。 たとえば、 window.location.reload() を呼び出してアドインを再読み込みできます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を以前に付与している場合は、asyncResult.value プロパティでfalseが返されます。 アクセス許可は既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーが要求されたデバイス機能へのアクセスを拒否すると、asyncResult.status プロパティでOffice.AsyncResultStatus.Failedが返されます。

返品

void

注釈

重要:

  • Excel、PowerPoint、Word アドインの場合は、代わりに requestPermissions メソッドを使用します。

  • アドインが Office on the web デスクトップ クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、requestPermissionsAsync を呼び出す前に、アドインが実行されているプラットフォームを確認してください。 Office.context.mailbox.診断を使用します。hostName を呼び出し、OutlookWebAppを返すことを確認します。 それ以外の場合、 requestPermissionsAsync 呼び出しはエラーを返します。

  • ユーザーがダイアログから [許可 ] を選択した場合、アクセス許可は、アドインがアンインストールされるか、アドインが実行されているブラウザーのキャッシュがクリアされるまで保持されます。 ユーザーが自分のカメラやマイクへのアドインへのアクセスを変更する場合は、アドインをアンインストールするか、ブラウザーのキャッシュをクリアする必要があります。

  • ユーザーがダイアログから [1 回許可 ] を選択した場合、アクセス許可は、アドインが実行されているブラウザー タブまたはウィンドウを閉じるまで保持されます。

  • ユーザーがダイアログで [ 拒否 ] を選択すると、次にアドインでユーザーのデバイス機能へのアクセスが必要になったときに、ユーザーに再度アクセス許可が要求されます。

  • アドインでイベント ベースのアクティベーション実装されている場合、デバイス機能に対するブラウザーのアクセス許可は継承されず、requestPermissionsAsync メソッドはサポートされません。

requestPermissionsAsync(permissions, callback)

カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。

要求されたすべてのアクセス許可は、1 つのモーダル ダイアログにユーザーに表示されます。 ダイアログには、要求されたアクセス許可を [許可]、[ 1 回許可]、または [ 拒否] のオプションが含まれています。

このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。

requestPermissionsAsync(permissions: Office.DevicePermissionType[], callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;

パラメーター

permissions

Office.DevicePermissionType[]

アドインがアクセスを要求しているデバイス機能の配列。 Windows の Outlook on the web および新しい Outlook では、アドインはユーザーのカメラ、位置情報、マイクへのアクセスを要求できます。

callback

(asyncResult: Office.AsyncResult<boolean>) => void

メソッドが完了すると、callback パラメーターで渡された関数が、Office.AsyncResult オブジェクトである 1 つのパラメーター asyncResult を指定して呼び出されます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を付与すると、asyncResult.value プロパティでtrueが返されます。 その後、デバイス機能を使用するコードを実行する前にアドインを再読み込みする必要があります。 たとえば、 window.location.reload() を呼び出してアドインを再読み込みできます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を以前に付与している場合は、asyncResult.value プロパティでfalseが返されます。 アクセス許可は既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーが要求されたデバイス機能へのアクセスを拒否すると、asyncResult.status プロパティでOffice.AsyncResultStatus.Failedが返されます。

返品

void

注釈

重要:

  • Excel、PowerPoint、Word アドインの場合は、代わりに requestPermissions メソッドを使用します。

  • アドインが Office on the web デスクトップ クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、requestPermissionsAsync を呼び出す前に、アドインが実行されているプラットフォームを確認してください。 Office.context.mailbox.診断を使用します。hostName を呼び出し、OutlookWebAppを返すことを確認します。 それ以外の場合、 requestPermissionsAsync 呼び出しはエラーを返します。

  • ユーザーがダイアログから [許可 ] を選択した場合、アクセス許可は、アドインがアンインストールされるか、アドインが実行されているブラウザーのキャッシュがクリアされるまで保持されます。 ユーザーが自分のカメラやマイクへのアドインへのアクセスを変更する場合は、アドインをアンインストールするか、ブラウザーのキャッシュをクリアする必要があります。

  • ユーザーがダイアログから [1 回許可 ] を選択した場合、アクセス許可は、アドインが実行されているブラウザー タブまたはウィンドウを閉じるまで保持されます。

  • ユーザーがダイアログで [ 拒否 ] を選択すると、次にアドインでユーザーのデバイス機能へのアクセスが必要になったときに、ユーザーに再度アクセス許可が要求されます。

  • アドインでイベント ベースのアクティベーション実装されている場合、デバイス機能に対するブラウザーのアクセス許可は継承されず、requestPermissionsAsync メソッドはサポートされません。

// Request permission from a user to access their camera, geolocation, and microphone.
if (Office.context.mailbox.diagnostics.hostName === "OutlookWebApp") {
    const deviceCapabilities = [
        Office.DevicePermissionType.camera,
        Office.DevicePermissionType.geolocation,
        Office.DevicePermissionType.microphone
    ];

    Office.devicePermission.requestPermissionsAsync(deviceCapabilities, (asyncResult) => {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            console.log("Permission denied.");

            // Do something when permission is denied.
        } else {
            if (asyncResult.value) {
                console.log("Permission granted.");
                // Reload your add-in before you run code that uses the device capabilities.
                location.reload();
            } else {
                console.log("Permission has been previously granted and is already set in the iframe.");
                
                // Since permission has been previously granted, you don't need to reload your add-in.

                // Do something with the device capabilities.
            }
        }
    });
}