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
メソッド
request |
カメラやマイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。 要求されたすべてのアクセス許可は、ユーザーに対する 1 つのモーダル ダイアログに表示されます。 ダイアログには、要求されたアクセス許可を 許可、 許可 1 回、または 拒否 するオプションが含まれています。 このメソッドは promise を返します。 Excel、PowerPoint、Word アドインで使用します。 ユーザーが初めてデバイス機能へのアクセスを許可した場合、promise は |
request |
カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。 要求されたすべてのアクセス許可は、ユーザーに対する 1 つのモーダル ダイアログに表示されます。 ダイアログには、要求されたアクセス許可を 許可、 許可 1 回、または 拒否 するオプションが含まれています。 このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。 |
request |
カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。 要求されたすべてのアクセス許可は、ユーザーに対する 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
アドインがアクセスを要求しているデバイス機能の配列。 Excel、PowerPoint、Word の Web バージョンでは、アドインはユーザーのカメラとマイクへのアクセスのみを要求できます。 ユーザーの位置情報へのアクセスがブロックされます。
戻り値
Promise<boolean>
注釈
重要:
このメソッドは、Outlook アドインではサポートされていません。代わりに
requestPermissionsAsync
メソッドを使用します。アドインで Office on the web クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、アドインが実行されているプラットフォームを確認してから、
requestPermissions
を呼び出します。 Office.context.platform を使用し、Office.PlatformType.OfficeOnline
が返されることを確認します。 それ以外の場合、requestPermissions
呼び出しはエラーを返します。ユーザーがダイアログから [許可 ] を選択した場合、アドインがアンインストールされるまで、またはアドインが実行されているブラウザーのキャッシュがクリアされるまで、アクセス許可は保持されます。 ユーザーがアドインのカメラまたはマイクへのアクセスを変更する場合は、アドインをアンインストールするか、ブラウザー キャッシュをクリアする必要があります。
ユーザーがダイアログから [1 回許可] を選択した場合、アクセス許可は、アドインが実行されているブラウザー タブまたはウィンドウが閉じられるまで保持されます。
ユーザーがダイアログから [拒否 ] を選択した場合、次回アドインでユーザーのデバイス機能へのアクセスが必要になると、ユーザーにアクセス許可が再度要求されます。
例
// 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
アドインがアクセスを要求しているデバイス機能の配列。 Outlook on the web と新しい Outlook on Windows ではアドインはユーザーのカメラ、位置情報、マイクへのアクセスを要求できます。
- options
- Office.AsyncContextOptions
asyncContext
プロパティを含むオブジェクト リテラル。 コールバック関数でアクセスするオブジェクトを asyncContext
プロパティに割り当てます。
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
メソッドが完了すると、callback
パラメーターで渡された関数が、Office.AsyncResult
オブジェクトである 1 つのパラメーターasyncResult
で呼び出されます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を付与した場合、asyncResult.value
プロパティにtrue
が返されます。 その後、デバイス機能を使用するコードを実行する前に、アドインを再読み込みする必要があります。 たとえば、 window.location.reload()
を呼び出してアドインを再読み込みできます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を以前に付与していた場合、 false
は asyncResult.value
プロパティで返されます。 アクセス許可が既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーが要求されたデバイス機能へのアクセスを拒否した場合、 Office.AsyncResultStatus.Failed
は asyncResult.status
プロパティで返されます。
戻り値
void
注釈
重要:
Excel、PowerPoint、Word アドインの場合は、代わりに
requestPermissions
メソッドを使用します。アドインで Office on the web クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、アドインが実行されているプラットフォームを確認してから、
requestPermissionsAsync
を呼び出します。 Office.context.mailbox.diagnostics.hostName を使用し、OutlookWebApp
が返されることを確認します。 それ以外の場合、requestPermissionsAsync
呼び出しはエラーを返します。ユーザーがダイアログから [許可 ] を選択した場合、アドインがアンインストールされるまで、またはアドインが実行されているブラウザーのキャッシュがクリアされるまで、アクセス許可は保持されます。 ユーザーがアドインのカメラまたはマイクへのアクセスを変更する場合は、アドインをアンインストールするか、ブラウザー キャッシュをクリアする必要があります。
ユーザーがダイアログから [1 回許可] を選択した場合、アクセス許可は、アドインが実行されているブラウザー タブまたはウィンドウが閉じられるまで保持されます。
ユーザーがダイアログから [拒否 ] を選択した場合、次回アドインでユーザーのデバイス機能へのアクセスが必要になると、ユーザーにアクセス許可が再度要求されます。
アドインが イベント ベースのアクティブ化を実装している場合、デバイス機能に対するブラウザーのアクセス許可は継承されず、
requestPermissionsAsync
メソッドはサポートされません。
requestPermissionsAsync(permissions, callback)
カメラ、位置情報、マイクなどのデバイス機能にアクセスするためのアクセス許可をユーザーに要求します。
要求されたすべてのアクセス許可は、ユーザーに対する 1 つのモーダル ダイアログに表示されます。 ダイアログには、要求されたアクセス許可を 許可、 許可 1 回、または 拒否 するオプションが含まれています。
このメソッドはコールバック関数を受け入れます。 Outlook アドインで使用します。
requestPermissionsAsync(permissions: Office.DevicePermissionType[], callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;
パラメーター
- permissions
アドインがアクセスを要求しているデバイス機能の配列。 Outlook on the web と新しい Outlook on Windows ではアドインはユーザーのカメラ、位置情報、マイクへのアクセスを要求できます。
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
メソッドが完了すると、callback
パラメーターで渡された関数が、Office.AsyncResult
オブジェクトである 1 つのパラメーターasyncResult
で呼び出されます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を付与した場合、asyncResult.value
プロパティにtrue
が返されます。 その後、デバイス機能を使用するコードを実行する前に、アドインを再読み込みする必要があります。 たとえば、 window.location.reload()
を呼び出してアドインを再読み込みできます。 ユーザーが要求されたデバイス機能にアクセスするためのアクセス許可を以前に付与していた場合、 false
は asyncResult.value
プロパティで返されます。 アクセス許可が既に設定されているため、デバイス機能を使用するコードを実行するためにアドインを再読み込みする必要はありません。 ユーザーが要求されたデバイス機能へのアクセスを拒否した場合、 Office.AsyncResultStatus.Failed
は asyncResult.status
プロパティで返されます。
戻り値
void
注釈
重要:
Excel、PowerPoint、Word アドインの場合は、代わりに
requestPermissions
メソッドを使用します。アドインで Office on the web クライアントと Office デスクトップ クライアントの両方で同じコードを使用している場合は、アドインが実行されているプラットフォームを確認してから、
requestPermissionsAsync
を呼び出します。 Office.context.mailbox.diagnostics.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.
}
}
});
}
Office Add-ins