Solicitar permisos de dispositivo para la pestaña de Microsoft Teams

Es posible que quieras enriquecer la pestaña con características que requieren acceso a la funcionalidad de dispositivo nativo, como:

  • Cámara
  • Micrófono
  • Ubicación
  • Notificaciones

Nota

Para integrar las capacidades de cámara e imagen dentro de la aplicación móvil de Microsoft Teams, vea las funciones de cámara e imagen en Teams.

Importante

  • Actualmente, el cliente móvil de Teams solo admite el acceso a , y a través de las capacidades de dispositivo nativo y está disponible en todas las construcciones de camera gallery mic location aplicaciones, incluidas las pestañas.
  • Compatibilidad con camera , y se habilita a través de la API gallery mic selectMedia. Para la captura de imagen única, puede usar la API captureImage.
  • La compatibilidad con location se habilita a través de la API getLocation. Se recomienda usar esta API, ya que la API de geolocalización no es totalmente compatible actualmente con todos los clientes de escritorio.

Permisos de dispositivo

El acceso a los permisos de dispositivo de un usuario le permite crear experiencias mucho más enriqueciendo, por ejemplo:

  • Grabar y compartir vídeos cortos
  • Grabar notas breves de audio y guardarlas para más adelante
  • Usar la información de ubicación del usuario para mostrar información relevante

Aunque el acceso a estas características es estándar en la mayoría de los exploradores web modernos, necesita que Teams sepa qué características desea usar mediante la actualización del manifiesto de la aplicación. Esto le permitirá solicitar permisos, del mismo modo que lo haría en un explorador, mientras la aplicación se ejecuta en el cliente de escritorio de Teams.

Administrar permisos

  1. Abra Teams.
  2. En la esquina superior derecha de la ventana, seleccione el icono de perfil.
  3. Seleccione Permisos -> de configuración en el menú desplegable.
  4. Elige la configuración que quieras.

Pantalla de configuración de escritorio de permisos de dispositivo

Propiedades

Actualiza las aplicaciones agregando y especificando cuál de las cinco propiedades manifest.json te gustaría usar en la devicePermissions aplicación:

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

Nota

Los medios también se usan para permisos de cámara en dispositivos móviles.

Cada propiedad te permitirá pedir al usuario que solicite su consentimiento:

Propiedad Description
Elementos multimedia permiso para usar la cámara, el micrófono, los altavoces y la galería multimedia de acceso
geolocalización permiso para devolver la ubicación del usuario
notifications permiso para enviar notificaciones de usuario
midi permiso para enviar y recibir información midi de un instrumento música digital
openExternal permiso para abrir vínculos en aplicaciones externas

Comprobar los permisos de la pestaña

Una vez que haya agregado al manifiesto de la aplicación, puede comprobar los permisos mediante la API de "permisos" de HTML5 sin causar devicePermissions ningún mensaje.

// 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
  }
});

Preguntar al usuario

Para mostrar un mensaje para obtener el consentimiento para obtener acceso a los permisos de dispositivo, debe aprovechar la API de HTML5 o Teams adecuada.

Por ejemplo, para solicitar al usuario que acceda a su ubicación, debe llamar getCurrentPosition a:

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

Para usar la cámara en el escritorio o en la web, Teams mostrará un mensaje de permiso cuando llame getUserMedia a:

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

Para capturar la imagen en dispositivos móviles, Teams mobile pedirá permiso al captureImage() llamar:

microsoftTeams.media.captureImage((error: microsoftTeams.SdkError, files: microsoftTeams.media.File[]) => {
  /* ... */
});

Las notificaciones preguntarán al usuario cuando requestPermission llame:

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

Para usar la cámara o acceder a la galería de fotos, Teams mobile pedirá permiso al selectMedia() llamar:

microsoftTeams.media.selectMedia({ maxMediaCount: 10, mediaType: microsoftTeams.media.MediaType.Image }, (error: microsoftTeams.SdkError, attachments: microsoftTeams.media.Media[]) => {
  /* ... */
});

Para usar micrófono, Teams Mobile pedirá permiso cuando selectMedia() llame:

microsoftTeams.media.selectMedia({ maxMediaCount: 1, mediaType: microsoftTeams.media.MediaType.Audio }, (error: microsoftTeams.SdkError, attachments: microsoftTeams.media.Media[]) => {
  /* ... */
});

Para solicitar al usuario que comparta la ubicación en la interfaz de mapa, teams móvil solicitará permiso cuando getLocation() llame:

microsoftTeams.location.getLocation({ allowChooseLocation: true, showMap: true }, (error: microsoftTeams.SdkError, location: microsoftTeams.location.Location) => {
  /* ... *
/});

Mensaje de permisos de dispositivo de escritorio de pestañas