Tenho que recuperar a localização de um usuário em a WebView
. Faço isso com o seguinte Javascript:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Mas o pop-up de solicitação de permissão nunca abre.
Eu defini estas configurações:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
Qual é a maneira correta de acessar a localização de um usuário de dentro de um WebView
?
fonte
android.webkit.WebChromeClient()
vez de apenasWebChromeClient()
eandroid.webkit.GeolocationPermissions.Callback
fazer isso funcionar.Você está declarando essa permissão em seu manifesto?
Você também pode precisar declarar outras permissões de localização, como estas:
fonte
A caixa de diálogo para aceitar ou recusar a localização do usuário foi projetada pelo programador: D. Como disse Chris Cashwell, basta usar um retorno de chamada como este:
Em alguns casos, o HTML5 requer o uso de armazenamento, você deve habilitar algumas propriedades para que o webview tenha acesso total para funcionar normalmente.
fonte
Compartilhando minha aula de atividade de trabalho, esta é uma solução completa que pode demonstrar
Espero que economize o tempo de alguém
fonte
Este é um exemplo de exibição de diálogo de alerta para promover a permissão do usuário para usar sua localização:
fonte
Recentemente me deparei com esse tipo de situação e executei as etapas abaixo para conseguir isso:
Etapa 1: adicionar permissões em seu
AndroidManifest.xml
arquivoEtapa 2: crie uma atividade que contenha um
WebView
eProgressBar
(no meu caso)Etapa 3: em sua aula de atividade, adicione o código abaixo e faça as alterações de acordo com sua necessidade
fonte