Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

584
Vistas
¿Cómo se determina cuándo solicitar los permisos de ubicación del usuario en el safari de iOS?

Cuando se utiliza la API geolocation.getCurrentPosition en dispositivos móviles, iOS probado en este momento, se solicita a los usuarios más de una vez a través de una sesión según la página. En comparación con un sitio de escritorio, como Chrome en Windows 10, donde una vez que un usuario presiona Allow , ya no se le solicitarán permisos a menos que se deshabilite explícitamente. iOS Safari parece estar basado en sesiones y luego posiblemente basado en páginas dentro de la sesión.

¿Se pregunta si alguien sabe si hay reglas explícitas definidas por Apple para esta verificación de permisos? ¿ maximumAge también juega un papel en la frecuencia con la que se solicita al usuario?

 const LOCATION_OPTIONS = { timeout: 15000, enableHighAccuracy: true, maximumAge: 86400000, }; useEffect(() => { const { geolocation } = navigator; // If the geolocation is not defined in the used browser we handle it as an error if (!geolocation) { setError("Geolocation is not supported."); return; } // Call Geolocation API geolocation.getCurrentPosition(handleSuccess, handleError, options); }, [options]); return { location, error };

Ejemplo NextJS CodeSandbox https://u11vn.sse.codesandbox.io/

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Desafortunadamente, parece que no hay forma de otorgar acceso permanente al sitio web a la privacidad del iPhone, como la ubicación de la cámara, dentro de Safari. pero en el lado del usuario, hay tres opciones ( Ask , Allow , Deny ) que pueden establecer

si usa JavaScript en iOS WKWebView , puede obtener una solución que solicite la ubicación con la API de ubicación de la aplicación

si usa JavaScript en la web, bueno, no puede lograr esto.

over 4 years ago · Santiago Trujillo Denunciar

0

En la web, haga lo siguiente / o use el navegador con un cuadro de diálogo emergente

 var options = { enableHighAccuracy: true, timeout: 7000, maximumAge: 0 }; function log(data) { const tag = document.createElement('p'); tag.textContent = data; document.body.appendChild(tag); } function success(pos) { var crd = pos.coords; console.log('Successfully determined a user position:', crd); log('Your current position is:'); log(`Latitude : ${crd.latitude}`); log(`Longitude: ${crd.longitude}`); log(`More or less ${crd.accuracy} meters.`); } function error(err) { console.warn(`ERROR(${err.code}): ${err.message}`); } navigator.geolocation.getCurrentPosition(success, error, options);

O

 $scope.watchId = navigator.geolocation.watchPosition(function (position) { if ($scope.t1 == 0) { $scope.t1 = position.timestamp; } else { if (Math.abs($scope.t1 - position.timestamp) > 5000) { $scope.t1 = position.timestamp; SellerRef.update({ Location: { Lat: position.coords.latitude, Long: position.coords.longitude } }) } } }, function (error) { if (error.code == 1) { $scope.showAlert("An error occured \n" + " Please goto Settings->Privacy->LocationServices and give permission for " + bowser.name + " which is your browser "); } } );

Para cargar tu web dentro de una app

  • Luego, con webView , simplemente agregue descripciones de permisos de ubicación al archivo info.plist .
  • Agregue NSLocationWhenInUseUsageDescription frente NSLocationAlwaysUsageDescription frente a NSLocationUsageDescription

Cuál es el error de geolocalización, mira aquí

 navigator.geolocation.getCurrentPosition(success => { /* Do some magic. */ }, failure => { if (failure.message.startsWith("Only secure origins are allowed")) { // Secure Origin issue. } });

Incluya/establezca una opción de "características requeridas" en el archivo manifest.webapp:

 { "required_features": ["geolocation"] }

Usuario:

En iPhone:

 Settings -> Location Services -> [your Browser] [apple ref][1]

Chrome requiere https para el uso de geolocalización


Solución de problemas && Verificación de permisos/Registro de depuración

Verifique, el SISTEMA OPERATIVO y el NAVEGADOR BOTH usuario tienen habilitados los servicios de ubicación, el navegador del usuario admite la verificación de los servicios de ubicación

 // options for current position const navigatorLocationOptions = { enableHighAccuracy: true, timeout: 7000, maximumAge: 0 }; // does browser have geo services enabled navigator.permissions.query({name:'geolocation'}) .then((result) => { if (result.state === 'granted') {// you are good navigator.geolocation.getCurrentPosition(position => { console.log('granted user location permission', position ); //.. do your stuff }, (error) => { // OS services are not enabled console.log('Please turn on OS located services', navigator); errorLocation(); }, navigatorLocationOptions); } else { // browser issues seriveces console.log('Browser location services disabled', navigator); errorLocation(); } }, (error) => { /* Browser doesn't support querying for permissions */ console.log('Please turn on BROWSER location services', navigator); errorLocation() } ); //handle errors function errorLocation() { ... }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda