Office.DevicePermission interface
Предоставляет методы для надстройки, чтобы запросить у пользователя разрешение на доступ к возможностям устройства. К возможностям устройства пользователя относятся камера, географическое расположение и микрофон.
Комментарии
Приложения. Этот API поддерживается следующими приложениями Office при запуске в браузерах на основе Chromium, таких как Microsoft Edge и Google Chrome.
Excel в Интернете
Outlook в Интернете
PowerPoint в Интернете
Word в Интернете
Он также поддерживается в новом Outlook в Windows.
Набор обязательных требований: DevicePermission 1.1
Методы
request |
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера или микрофон. Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения. Этот метод возвращает обещание. Используйте его с надстройками Excel, PowerPoint и Word. Если пользователь впервые предоставляет доступ к возможности устройства, обещание разрешается с |
request |
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера, географическое расположение или микрофон. Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения. Этот метод принимает функцию обратного вызова. Используйте его с надстройками Outlook. |
request |
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера, географическое расположение или микрофон. Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения. Этот метод принимает функцию обратного вызова. Используйте его с надстройками Outlook. |
Сведения о методе
requestPermissions(permissions)
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера или микрофон.
Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения.
Этот метод возвращает обещание. Используйте его с надстройками Excel, PowerPoint и Word.
Если пользователь впервые предоставляет доступ к возможности устройства, обещание разрешается с true
помощью . Затем необходимо перезагрузить надстройку, прежде чем выполнять код, использующий возможность устройства. Например, можно вызвать для window.location.reload()
перезагрузки надстройки. Если пользователь ранее предоставлял доступ к возможности устройства, обещание разрешается с false
помощью . Вам не нужно перезагружать надстройку для выполнения кода, использующего возможность устройства, так как разрешение уже задано. Если пользователь запрещает доступ к возможности устройства, обещание отклоняет сообщение об ошибке "Пользователь отказал в запросе разрешения".
requestPermissions(permissions: Office.DevicePermissionType[]): Promise<boolean>;
Параметры
- permissions
Массив возможностей устройств, к которым надстройка запрашивает доступ. В веб-версиях Excel, PowerPoint и Word надстройки могут запрашивать доступ только к камере и микрофону пользователя. Доступ к географическому расположению пользователя блокируется.
Возвращаемое значение
Promise<boolean>
Комментарии
Важно!
Этот метод не поддерживается в надстройках Outlook. Вместо этого используйте
requestPermissionsAsync
метод .Если надстройка использует один и тот же код как для office в Интернете, так и для классических клиентов Office, проверьте платформу, на которой выполняется надстройка, перед вызовом
requestPermissions
. Используйте Office.context.platform и убедитесь, что возвращаетсяOffice.PlatformType.OfficeOnline
. В противномrequestPermissions
случае вызов вернет ошибку.Если пользователь выбирает Разрешить в диалоговом окне, разрешение сохраняется до удаления надстройки или до тех пор, пока не будет очищен кэш браузера, в котором выполняется надстройка. Если пользователь хочет изменить доступ надстройки к камере или микрофону, он должен удалить надстройку или очистить кэш браузера.
Если пользователь выбирает Разрешить один раз в диалоговом окне, разрешение сохраняется до тех пор, пока вкладка или окно браузера, в котором выполняется надстройка, не будут закрыты.
Если пользователь выберет Запретить в диалоговом окне, он снова запросит разрешения, когда надстройке в следующий раз потребуется доступ к возможностям устройства пользователя.
Примеры
// 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)
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера, географическое расположение или микрофон.
Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения.
Этот метод принимает функцию обратного вызова. Используйте его с надстройками Outlook.
requestPermissionsAsync(permissions: Office.DevicePermissionType[], options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;
Параметры
- permissions
Массив возможностей устройств, к которым надстройка запрашивает доступ. В Outlook в Интернете и Outlook в Windows надстройка может запрашивать доступ к камере, географическому расположению и микрофону пользователя.
- options
- Office.AsyncContextOptions
Литерал объекта, содержащий asyncContext
свойство . Назначьте свойству любой объект, к которому вы хотите получить доступ в функции обратного asyncContext
вызова.
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром Office.AsyncResult
, asyncResult
который является объектом . Если пользователь предоставляет разрешение на доступ к запрошенным возможностям устройства, true
возвращается в свойстве asyncResult.value
. Затем необходимо перезагрузить надстройку, прежде чем выполнять код, использующий возможности устройства. Например, можно вызвать для window.location.reload()
перезагрузки надстройки. Если пользователь ранее предоставил разрешение на доступ к запрошенным возможностям устройства, false
возвращается в свойстве asyncResult.value
. Вам не нужно перезагружать надстройку для выполнения кода, использующего возможность устройства, так как разрешение уже задано. Если пользователь запрещает доступ к запрошенным возможностям устройства, Office.AsyncResultStatus.Failed
возвращается в свойстве asyncResult.status
.
Возвращаемое значение
void
Комментарии
Важно!
Для надстроек Excel, PowerPoint и Word используйте
requestPermissions
метод .Если надстройка использует один и тот же код как для office в Интернете, так и для классических клиентов Office, проверьте платформу, на которой выполняется надстройка, перед вызовом
requestPermissionsAsync
. Используйте Office.context.mailbox.diagnostics.hostName и убедитесь, что возвращаетсяOutlookWebApp
. В противномrequestPermissionsAsync
случае вызов вернет ошибку.Если пользователь выбирает Разрешить в диалоговом окне, разрешение сохраняется до удаления надстройки или до тех пор, пока не будет очищен кэш браузера, в котором выполняется надстройка. Если пользователь хочет изменить доступ надстройки к камере или микрофону, он должен удалить надстройку или очистить кэш браузера.
Если пользователь выбирает Разрешить один раз в диалоговом окне, разрешение сохраняется до тех пор, пока вкладка или окно браузера, в котором выполняется надстройка, не будут закрыты.
Если пользователь выберет Запретить в диалоговом окне, он снова запросит разрешения, когда надстройке в следующий раз потребуется доступ к возможностям устройства пользователя.
Если надстройка реализует активацию на основе событий, разрешения браузера на возможности устройства не наследуются и
requestPermissionsAsync
метод не поддерживается.
requestPermissionsAsync(permissions, callback)
Запрашивает у пользователя разрешение на доступ к возможностям устройства, таким как камера, географическое расположение или микрофон.
Все запрошенные разрешения отображаются для пользователя в одном модальном диалоговом окне. Диалоговое окно содержит параметры Разрешить, Разрешить один раз или Запретить запрошенные разрешения.
Этот метод принимает функцию обратного вызова. Используйте его с надстройками Outlook.
requestPermissionsAsync(permissions: Office.DevicePermissionType[], callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;
Параметры
- permissions
Массив возможностей устройств, к которым надстройка запрашивает доступ. В Outlook в Интернете и Outlook в Windows надстройка может запрашивать доступ к камере, географическому расположению и микрофону пользователя.
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
После завершения метода функция, переданная в callback
параметре, вызывается с одним параметром Office.AsyncResult
, asyncResult
который является объектом . Если пользователь предоставляет разрешение на доступ к запрошенным возможностям устройства, true
возвращается в свойстве asyncResult.value
. Затем необходимо перезагрузить надстройку, прежде чем выполнять код, использующий возможности устройства. Например, можно вызвать для window.location.reload()
перезагрузки надстройки. Если пользователь ранее предоставил разрешение на доступ к запрошенным возможностям устройства, false
возвращается в свойстве asyncResult.value
. Вам не нужно перезагружать надстройку для выполнения кода, использующего возможность устройства, так как разрешение уже задано. Если пользователь запрещает доступ к запрошенным возможностям устройства, Office.AsyncResultStatus.Failed
возвращается в свойстве asyncResult.status
.
Возвращаемое значение
void
Комментарии
Важно!
Для надстроек Excel, PowerPoint и Word используйте
requestPermissions
метод .Если надстройка использует один и тот же код как для office в Интернете, так и для классических клиентов Office, проверьте платформу, на которой выполняется надстройка, перед вызовом
requestPermissionsAsync
. Используйте Office.context.mailbox.diagnostics.hostName и убедитесь, что возвращаетсяOutlookWebApp
. В противномrequestPermissionsAsync
случае вызов вернет ошибку.Если пользователь выбирает Разрешить в диалоговом окне, разрешение сохраняется до удаления надстройки или до тех пор, пока не будет очищен кэш браузера, в котором выполняется надстройка. Если пользователь хочет изменить доступ надстройки к камере или микрофону, он должен удалить надстройку или очистить кэш браузера.
Если пользователь выбирает Разрешить один раз в диалоговом окне, разрешение сохраняется до тех пор, пока вкладка или окно браузера, в котором выполняется надстройка, не будут закрыты.
Если пользователь выберет Запретить в диалоговом окне, он снова запросит разрешения, когда надстройке в следующий раз потребуется доступ к возможностям устройства пользователя.
Если надстройка реализует активацию на основе событий, разрешения браузера на возможности устройства не наследуются и
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