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

Es posible que quiera enriquecer su pestaña con características que requieran la funcionalidad de dispositivo nativo de Access como:

  • Digital
  • Micro
  • Ubicación
  • Notificaciones

Pantalla de configuración de permisos de dispositivo

Importante

Actualmente, la funcionalidad de dispositivos nativos no es compatible con las pestañas de los clientes móviles.

Actualmente, la API de ubicación geográfica no es totalmente compatible 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 enriquecidas, por ejemplo:

  • Grabar y compartir vídeos breves
  • Grabe memorandos de audio cortos y guárdelos para más tarde
  • 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, es necesario que los equipos sepan qué características desea usar al actualizar el manifiesto de la aplicación. Esto le permitirá solicitar permisos, de la misma manera que lo haría en un explorador, mientras la aplicación se ejecuta en el cliente de escritorio de Microsoft Teams.

Propiedades

Actualice la aplicación manifest.json agregando devicePermissions y especificando cuál de las cinco propiedades desea usar en la aplicación:

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

Cada propiedad le permitirá pedir al usuario que pida su consentimiento

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

Comprobación de permisos en la pestaña

Una vez que haya devicePermissions agregado al manifiesto de la aplicación, puede comprobar los permisos mediante la API de "permisos" de HTML5 sin que se le pida confirmación.

// 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 una solicitud para obtener consentimiento para obtener acceso a los permisos del dispositivo, necesita aprovechar la API de HTML5 adecuada. Por ejemplo, para pedir al usuario que tenga acceso a su cámara, debe llamar agetUserMedia

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

La ubicación geográfica mostrará una solicitud de permiso cuando llame agetCurrentPosition

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

Las notificaciones le preguntarán al usuario cuando llame arequestPermission

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

Pestañas del mensaje de permisos de dispositivo

Comportamiento de permisos en sesiones de inicio de sesión

Los permisos de dispositivos nativos se almacenan por sesión de inicio de sesión. Esto significa que si inicia sesión en otra instancia de Teams (por ejemplo: en otro equipo), los permisos de dispositivo de las sesiones anteriores no estarán disponibles. En su lugar, tendrá que volver a dar su consentimiento a los permisos de dispositivo para la nueva sesión de inicio de sesión. Esto también significa que, si sale de la sesión de Teams (o de los inquilinos de conmutador dentro de los equipos), los permisos de dispositivo se eliminarán para la sesión de inicio anterior. Tenga esto en cuenta cuando desarrolle permisos de dispositivos nativos: las funciones nativas con las que da su consentimiento están solo para su sesión de inicio actual .