Запрос разрешений устройства для вкладки Microsoft TeamsRequest device permissions for your Microsoft Teams tab

Вам может потребоваться расширить вкладки с помощью функций, требующих встроенных функций для доступа к устройствам, таких как:You might want to enrich your tab with features that require access native device functionality like:

  • ВидеокамерCamera
  • СпециальныйMicrophone
  • РасположениеLocation
  • УведомленияNotifications

Важно!

  • В настоящее время клиент Teams для мобильных устройств поддерживает только camera location встроенные возможности устройств и доступен во всех конструкциях приложений, в том числе на вкладках.Currently, Teams mobile client only supports camera and location through native device capabilities and is available on all app constructs including tabs.
  • Поддержка camera захвата образов включена с помощью API каптуреимаже.Support for camera image capture is enabled by the captureImage API.
  • В настоящее время API географического расположения не полностью поддерживается для всех настольных клиентов.The geolocation API is currently not fully supported on all desktop clients.

Разрешения для устройствDevice permissions

Доступ к разрешениям для устройств пользователя позволяет создавать более широкие возможности, например:Accessing a user’s device permissions allows you to build much richer experiences, for example:

  • Запись и совместное использование коротких видеороликовRecord and share short videos
  • Запись коротких звуковых заметок и их сохранение для последующего использованияRecord short audio memos and save them for later
  • Использование сведений о местонахождении пользователя для отображения релевантных сведенийUse user location information to display relevant information

Несмотря на то, что доступ к этим функциям имеют стандартные в большинстве современных веб-браузеров, необходимо разрешить командам знать, какие функции вы хотите использовать, обновив манифест приложения.While access to these features are standard in most modern web browsers, you need to let Teams know which features you’d like to use by updating your app manifest. Это позволит вам запросить разрешения так же, как и в браузере, а ваше приложение запущено на настольном клиенте Teams.This will allow you to ask for permissions, the same way you would in a browser, while your app is running on the Teams desktop client.

Управление разрешениямиManage permissions

  1. Откройте Teams.Open Teams.
  2. В правом верхнем углу окна выберите свой значок профиля.In the upper right corner of the window, select your profile icon.
  3. В раскрывающемся меню выберите пункт Параметры -> разрешений .Select Settings -> Permissions from the drop-down menu.
  4. Выберите нужные параметры.Choose your desired settings.

Экран параметров рабочего стола для разрешений устройства

СвойстваProperties

Обновите свое приложение manifest.json , добавив devicePermissions и указав, какие из пяти свойств вы хотите использовать в вашем приложении:Update your app's manifest.json by adding devicePermissions and specifying which of the five properties you’d like to use in your application:

"devicePermissions": [
    "media",
    "geolocation",
    "notifications",
    "midi",
    "openExternal"
],

Примечание

Мультимедиа также используется для разрешений камеры на мобильных устройствах.Media is also used for camera permissions in mobile.

Каждое свойство позволит пользователю запросить согласие пользователя.Each property will allow you to prompt the user to ask for their consent

СвойствоProperty ОписаниеDescription
СМИmedia разрешение на использование камеры, микрофона и динамиковpermission to use the camera, microphone and speakers
географическое положениеgeolocation разрешение на возврат расположения пользователяpermission to return the user's location
уведомленияnotifications разрешение на отправку уведомлений пользователейpermission to send the user notifications
MIDImidi разрешение на отправку и получение информации MIDI из цифрового музыкального инструментаpermission to send and receive midi information from a digital musical instrument
опенекстерналopenExternal разрешение на открытие ссылок во внешних приложенияхpermission to open links in external applications

Проверка разрешений на вкладкеChecking permissions from your tab

После добавления devicePermissions в манифест приложения вы можете проверить разрешения с помощью API-интерфейса HTML5, не вызывая запрос.Once you’ve added devicePermissions to your app manifest, you can check permissions using the HTML5 “permissions” API without causing a prompt.

// Different query options:
navigator.permissions.query({ name: 'camera' });
navigator.permissions.query({ name: 'microphone' });
navigator.permissions.query({ name: 'geolocation' });
navigator.permissions.query({ name: 'notifications' });
navigator.permissions.query({ name: 'midi', sysex: true });

// Example:
navigator.permissions.query({name:'geolocation'}).then(function(result) {
  if (result.state == 'granted') {
    // Access granted
  } else if (result.state == 'prompt') {
    // Access has not been granted
  }
});

Запрос пользователяPrompting the user

Чтобы показать запрос на получение согласия на доступ к разрешениям для устройств, необходимо использовать соответствующий HTML5 или API Teams.In order to show a prompt to get consent to access device permissions you need to leverage the appropriate HTML5 or Teams API. Например, чтобы запросить у пользователя доступ к камере, которую нужно позвонитьgetCurrentPositionFor example, in order to prompt the user to access their camera you need to call getCurrentPosition

navigator.geolocation.getCurrentPosition(function (position) { /*... */ });

Чтобы использовать камеру на настольном компьютере или в Интернете, при вызове Жетусермедиа Teams будет показывать запрос о разрешении.To use camera on desktop or web, Teams will show a permission prompt when you call getUserMedia

navigator.mediaDevices.getUserMedia({ audio: true, video: true });

Чтобы записать изображение на мобильном устройстве, Teams будет запрашивать разрешение при вызове Каптуреимаже ().To capture image on mobile, Teams mobile will ask for permission when called captureImage()

function captureImage(callback: (error: SdkError, files: File[]) => void)

Уведомления будут запрашивать пользователя при вызовеrequestPermissionNotifications will prompt the user when you call requestPermission

Notification.requestPermission(function(result) { /* ... */ });

Запрос на доступ к устройствам с вкладками

Поведение разрешений в сеансах входаPermission behavior across login sessions

Встроенные разрешения устройств хранятся на каждом сеансе входа.Native device permissions are stored per login session. Это означает, что если вы входите в другой экземпляр Teams (например, на другом компьютере), ваши разрешения на доступ к устройствам из предыдущих сеансов станут недоступными.This means that if you log into another instance of Teams (ex: on another computer), your device permissions from your previous sessions will not be available. Вместо этого вам потребуется повторное согласие с разрешениями на устройство для нового сеанса входа.Instead, you will need to re-consent to device permissions for the new login session. Это также означает, что при выходе из Teams (или переключении клиентов в Teams) разрешения для этого устройства будут удалены для этого предыдущего сеанса.This also means, if you log out of Teams (or switch tenants inside of Teams), your device permissions will be deleted for that previous login session. Помните об этом при разработке собственных разрешений на устройства: встроенные возможности, на которые вы согласны, относятся только к текущему сеансу входа в систему.Please keep this in mind when developing native device permissions: the native capabilities you consent to are only for your current login session.