Solicitar permissões de dispositivo para a guia do Microsoft TeamsRequest device permissions for your Microsoft Teams tab

Você pode querer enriquecer sua guia com recursos que exigem o acesso de funcionalidade de dispositivo nativo, como:You might want to enrich your tab with features that require access native device functionality like:

  • CâmaraCamera
  • MicrofoneMicrophone
  • LocalLocation
  • NotificaçõesNotifications

Importante

  • Atualmente, o cliente do teams Mobile só oferece suporte camera location a recursos de dispositivos nativos e está disponível em todas as construções de aplicativos, incluindo guias.Currently, Teams mobile client only supports camera and location through native device capabilities and is available on all app constructs including tabs.
  • O suporte para camera captura de imagem está habilitado pela API captureImage.Support for camera image capture is enabled by the captureImage API.
  • Atualmente, a API de localização geográfica não tem suporte total em todos os clientes de desktop.The geolocation API is currently not fully supported on all desktop clients.

Permissões de dispositivosDevice permissions

O acesso às permissões de dispositivo de um usuário permite que você construa experiências muito mais ricas, por exemplo:Accessing a user’s device permissions allows you to build much richer experiences, for example:

  • Gravar e compartilhar vídeos curtosRecord and share short videos
  • Gravar memorandos de áudio curtos e salvá-los para mais tardeRecord short audio memos and save them for later
  • Usar informações de local de usuário para exibir informações relevantesUse user location information to display relevant information

Embora o acesso a esses recursos seja padrão nos navegadores da Web mais modernos, você precisa permitir que as equipes saibam quais recursos você gostaria de usar atualizando o manifesto do aplicativo.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. Isso permitirá que você solicite permissões, da mesma forma que faria em um navegador, enquanto seu aplicativo está sendo executado no cliente de área de trabalho do Microsoft 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.

Gerenciar permissõesManage permissions

  1. Abra o Microsoft Teams.Open Teams.
  2. No canto superior direito da janela, selecione o ícone do seu perfil.In the upper right corner of the window, select your profile icon.
  3. Selecione Settings -> permissões de configurações no menu suspenso.Select Settings -> Permissions from the drop-down menu.
  4. Escolha as configurações desejadas.Choose your desired settings.

Tela de configurações da área de trabalho de permissões de dispositivo

PropriedadesProperties

Atualize o seu aplicativo manifest.json adicionando devicePermissions e especificando quais das cinco Propriedades você gostaria de usar em seu aplicativo: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"
],

Observação

A mídia também é usada para permissões de câmera no celular.Media is also used for camera permissions in mobile.

Cada propriedade permitirá que o usuário solicite o consentimento deleEach property will allow you to prompt the user to ask for their consent

PropriedadeProperty DescriçãoDescription
mídiamedia permissão para usar câmera, microfone e alto-falantespermission to use the camera, microphone and speakers
localização geográficageolocation permissão para retornar o local do usuáriopermission to return the user's location
pornotifications permissão para enviar as notificações de usuáriopermission to send the user notifications
Midimidi permissão para enviar e receber informações de Midi de um instrumento musical digitalpermission to send and receive midi information from a digital musical instrument
openExternalopenExternal permissão para abrir links em aplicativos externospermission to open links in external applications

Verificando permissões na sua guiaChecking permissions from your tab

Depois de adicionar o devicePermissions manifesto do aplicativo, você poderá verificar as permissões usando a API "permissões" do HTML5 sem causar um aviso.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
  }
});

Avisar o usuárioPrompting the user

Para mostrar um prompt para obter consentimento para acessar permissões de dispositivo, você precisa aproveitar a API do HTML5 ou do teams apropriada.In order to show a prompt to get consent to access device permissions you need to leverage the appropriate HTML5 or Teams API. Por exemplo, para solicitar que o usuário acesse a câmera que você precisa chamargetCurrentPositionFor example, in order to prompt the user to access their camera you need to call getCurrentPosition

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

Para usar a câmera na área de trabalho ou na Web, o Microsoft Teams mostrará um prompt de permissão ao chamar getUserMediaTo use camera on desktop or web, Teams will show a permission prompt when you call getUserMedia

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

Para capturar imagem em dispositivos móveis, o Microsoft Teams solicitará permissão ao chamar captureImage ()To capture image on mobile, Teams mobile will ask for permission when called captureImage()

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

As notificações solicitarão o usuário quando você ligarrequestPermissionNotifications will prompt the user when you call requestPermission

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

Prompt de permissões de dispositivo de guias

Comportamento de permissão nas sessões de logonPermission behavior across login sessions

As permissões de dispositivo nativo são armazenadas por sessão de logon.Native device permissions are stored per login session. Isso significa que, se você fizer logon em outra instância do Microsoft Teams (por exemplo, em outro computador), suas permissões de dispositivo de suas sessões anteriores não estarão disponíveis.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. Em vez disso, você precisará consentir novamente as permissões de dispositivo para a nova sessão de logon.Instead, you will need to re-consent to device permissions for the new login session. Isso também significa que, se você fizer logout de equipes (ou mudar locatários dentro do Teams), suas permissões de dispositivo serão excluídas para essa sessão de logon anterior.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. Tenha isso em mente ao desenvolver permissões de dispositivo nativo: os recursos nativos que você concorda para são apenas para sua sessão de login atual .Please keep this in mind when developing native device permissions: the native capabilities you consent to are only for your current login session.