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 APIgallery
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
- Abra Teams.
- En la esquina superior derecha de la ventana, seleccione el icono de perfil.
- Seleccione Permisos -> de configuración en el menú desplegable.
- Elige la configuración que quieras.
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) => {
/* ... *
/});