Solicitar permissões de dispositivo para seu aplicativo teams
Você pode enriquecer seu aplicativo Teams com recursos nativos do dispositivo, como câmera, microfone e localização. Este documento orienta você sobre como solicitar o consentimento do usuário e acessar as permissões do dispositivo nativo.
Observação
- Para integrar recursos de mídia em seu cliente Web do Teams, área de trabalho e móvel, consulte Integrar recursos de mídia.
- Para integrar a funcionalidade de leitor de código de barras ou QR em seu aplicativo móvel do Microsoft Teams, consulte Integrar funcionalidade de leitor QR ou de código de barras no Teams.
- Para integrar os recursos de localização em seu cliente Web, área de trabalho e celular do Teams, confira Integrar recursos de localização.
Permissões de dispositivo nativo
Você deve solicitar as permissões do dispositivo para acessar as funcionalidades nativas do dispositivo. As permissões de dispositivo funcionam da mesma forma para todos os builds de aplicativo, como guias, caixas de diálogo (conhecidas como módulos de tarefa no TeamsJS v1.x) ou extensões de mensagem. O usuário deve ir para a página de permissões nas configurações do Teams para gerenciar permissões de dispositivo. Ao acessar os recursos do dispositivo, você pode criar experiências mais avançadas na plataforma do Teams, como:
- Capturar e exibir imagens
- Verificar QR ou código de barras
- Gravar e compartilhar vídeos curtos
- Gravar memorandos de áudio e salvá-los para uso posterior
- Use as informações de localização do usuário para exibir informações relevantes
Observação
- As permissões do dispositivo são diferentes no navegador. Para saber mais, consulte permissões de dispositivo do navegador.
- O Teams dá suporte ao recurso de scanner de código de barras QR, que só está disponível para clientes móveis.
Acesse Permissões de acesso
A biblioteca de clientes JavaScript do Microsoft Teams fornece as ferramentas necessárias para que seu aplicativo do Teams acesse as permissões de dispositivo do usuário e crie uma experiência mais avançada.
Embora o acesso a esses recursos seja padrão em navegadores da Web modernos, você deve informar o Teams sobre os recursos usados atualizando o manifesto do aplicativo. Essa atualização permite que você peça permissões enquanto seu aplicativo é executado na área de trabalho do Teams.
Gerenciar permissões
Um usuário pode gerenciar permissões de dispositivo nas configurações do Teams selecionando Permitir ou Negar permissões para aplicativos específicos.
Abra o Teams.
Acesse Configurações Permissões>do aplicativo.
Selecione o aplicativo para o qual você deseja personalizar as configurações.
Selecione as configurações desejadas.
Especificar permissões
Atualize o manifest.json
do seu dispositivo adicionando devicePermissions
e especificando qual das cinco propriedades a seguir você usa em seu aplicativo:
"devicePermissions": [
"media",
"geolocation",
"notifications",
"midi",
"openExternal"
],
Cada propriedade permite que você solicite o consentimento dos usuários:
Propriedade | Descrição |
---|---|
mídia | Permissão para usar a câmera, o microfone, os alto-falantes e a galeria de mídia de acesso. |
Localização geográfica | Permissão para retornar a localização do usuário. |
notificações | Permissão para enviar notificações ao usuário. |
midi | Permissão para enviar e receber informações de MIDI (Interface Digital do Instrumento Musical) de um instrumento musical digital. |
openExternal | Permissão para abrir links em aplicativos externos. |
Para obter mais informações, consulte o manifesto do aplicativo.
Verificar permissões do seu aplicativo
Depois de adicionar devicePermissions
ao manifesto do aplicativo, verifique as permissões usando a API de permissões HTML5 sem causar um 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
}
});
Usar APIs do Teams para obter permissões de dispositivo
Aproveite a API html5 ou teams apropriada para exibir um prompt para obter consentimento para acessar permissões de dispositivo.
Importante
- O suporte para
camera
,gallery
emicrophone
é habilitado por meio da API selectMedia. Use a API captureImage para uma única captura de imagem. - O suporte para
location
é habilitado por meio da API getLocation . Você deve usá-logetLocation API
para localização, pois a API de geolocalização HTML5 atualmente não tem suporte total na área de trabalho do Teams.
Por exemplo:
Para solicitar que o usuário acesse sua localização, você deve chamar
getCurrentPosition()
:navigator.geolocation.getCurrentPosition(function (position) { /*... */ });
Para solicitar que o usuário acesse sua câmera na área de trabalho ou na Web, você deve chamar
getUserMedia()
:navigator.mediaDevices.getUserMedia({ audio: true, video: true });
Para capturar as imagens no celular, o teams móvel pede permissão quando você chama
captureImage()
:function captureImage() { microsoftTeams.media.captureImage((error, files) => { // If there's any error, an alert shows the error message/code if (error) { if (error.message) { alert(" ErrorCode: " + error.errorCode + error.message); } else { alert(" ErrorCode: " + error.errorCode); } } else if (files) { image = files[0].content; // Adding this image string in src attr of image tag will display the image on web page. let imageString = "data:" + item.mimeType + ";base64," + image; } }); }
As notificações solicitam ao usuário quando você chama
requestPermission()
:Notification.requestPermission(function(result) { /* ... */ });
Para usar a câmera ou a galeria de fotos de acesso, o aplicativo teams pede permissão quando você chama
selectMedia()
:function selectMedia() { microsoftTeams.media.selectMedia(mediaInput, (error, attachments) => { // If there's any error, an alert shows the error message/code if (error) { if (error.message) { alert(" ErrorCode: " + error.errorCode + error.message); } else { alert(" ErrorCode: " + error.errorCode); } } else if (attachments) { // creating image array which contains image string for all attached images. const imageArray = attachments.map((item, index) => { return ("data:" + item.mimeType + ";base64," + item.preview) }) } }); }
Para usar o microfone, o Aplicativo móvel do Teams solicita permissão quando você chama
selectMedia()
:function selectMedia() { microsoftTeams.media.selectMedia({ maxMediaCount: 1, mediaType: microsoftTeams.media.MediaType.Audio }, (error: microsoftTeams.SdkError, attachments: microsoftTeams.media.Media[]) => { // If there's any error, an alert shows the error message/code if (error) { if (error.message) { alert(" ErrorCode: " + error.errorCode + error.message); } else { alert(" ErrorCode: " + error.errorCode); } } if (attachments) { // taking the first attachment let audioResult = attachments[0]; // setting audio string which can be used in Video tag let audioData = "data:" + audioResult.mimeType + ";base64," + audioResult.preview } }); }
Para solicitar que o usuário compartilhe a localização na interface do mapa, o aplicativo teams pede permissão quando você chama
getLocation()
:
function getLocation() {
location.getLocation({ allowChooseLocation: true, showMap: true }).then((location) => {
let currentLocation = JSON.stringify(location);
}).catch((error) => { /*Error getting location*/ })}
Veja como as solicitações de permissões do dispositivo aparecem para os usuários no celular e na área de trabalho.
Comportamento de permissão entre sessões de entrada
As permissões do dispositivo são armazenadas para cada sessão de entrada. Isso significa que, se você entrar em outra instância do Teams, por exemplo, em outro computador, suas permissões de dispositivo de suas sessões anteriores não estão disponíveis. Portanto, você deve se reunir novamente com as permissões do dispositivo para a nova sessão. Isso também significa que, se você sair do Teams ou alternar locatários no Teams, suas permissões de dispositivo serão excluídas da sessão de entrada anterior.
Observação
Quando você consente com as permissões de dispositivo nativo, ela é válida somente para a sessão de entrada atual.
Exemplo de código
Nome do exemplo | Descrição | Node.js | Manifesto |
---|---|---|---|
Permissões de dispositivos | O exemplo mostra como usar as permissões do dispositivo usando o SDK do TeamsJS e a api do navegador. | View | View |
Próxima etapa
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de