Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

104
Visualizações
Comprobación de permisos del navegador en IOS

Creé un código javascript de geolocalización que detecta la ubicación del usuario en función de la variable del navegador.

La verificación de ubicación se realiza en función de los permisos que tiene actualmente el usuario.

Compruebo navigator.permissions.query({name: 'geolocation'}) y, en función de los resultados granted|prompt|denied , realizo una consulta navigator.geolocation.getCurrentPosition o una solicitud de API alternativa.

Mi problema aquí es que en los dispositivos IOS, navegador Safari, los navigator.permissions no están definidos.

Si realizo una consulta directa navigator.geolocation.getCurrentPosition , entonces siempre se abre el mensaje "permitir ubicación en el dispositivo", que es algo que no quiero.

Solo si el usuario ya ha permitido el uso de ubicación y el estado es granted realizaré una consulta de posición.

En caso de que el permiso esté en estado denied , hay un botón "Permitir ubicación" que, al hacer clic, aparecerá el aviso del navegador.

Funciona perfectamente en dispositivos de escritorio/Android, pero en IOS no podemos usar la variable navigator.permissions y no queremos que a nuestros usuarios se les solicite "permitir ubicación" en la entrada del sitio web.

Parte del código de referencia:

 if (navigator.permissions) { permissionsIsActive = true; } ...... if (permissionsIsActive){ makePermissionsQuery(); }else{ makePositionQuery(); } ...... var makePositionQuery = function () { navigator.geolocation.getCurrentPosition(function (devicePos) { isAccurate = true; position = { lat: parseFloat(devicePos.coords.latitude), lng: parseFloat(devicePos.coords.longitude) } //inject granted status as this is an if dependent variable //so we make sure its in place for the prompt statement permissionsStatus = 'granted'; isFinished = true; },function () { handleGeoError(); }); } ...... var makePermissionsQuery = function() { navigator.permissions.query({name: 'geolocation'}).then(function (result) { permissionsStatus = result.state; switch (result.state) { case "granted": makePositionQuery(); break; case "prompt": handleGeoError(); break; case "denied": handleGeoError(); break; } }); }

Entonces mi pregunta es, ¿cómo podemos detectar el estado de permisos en un dispositivo IOS, safari?

No estoy seguro de si me equivoqué o me perdí algo, ¡pero cualquier consejo sería útil!

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda