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

473
Vistas
¿Cómo hago para que la ubicación en segundo plano se ejecute en una aplicación Expo EAS en iOS?

Tengo una aplicación independiente de EAS que se creó con Expo SDK 43. Estoy tratando de solicitar permisos para acceder a la ubicación en segundo plano de un usuario (ubicación cuando la aplicación no está abierta pero se ejecuta en segundo plano)

Cuando la aplicación compila, la consola arroja esta advertencia:

 TaskManager: Task "background-location-task" has been executed but looks like it is not defined. Please make sure that "TaskManager.defineTask" is called during initialization phase.

También arroja esta advertencia:

 [Unhandled promise rejection: Error: Task 'background-location-task' not found for app ID 'mainApplication'.]

Creo que estoy configurando correctamente las ubicaciones de fondo, pero parece que no estoy ejecutando algo correctamente. A continuación se muestra mi código de cómo solicito ubicaciones de fondo.

Nota: tengo la solicitud en segundo plano en un useEffect, y el Administrador de tareas fuera del useEffect dentro del archivo después de las solicitudes de ubicación en primer plano.

// aplicación.json e información.Plist:

 "ios":{ ... "UIBackgroundModes":[ "location", "fetch" ] }

//Dentro del archivo principal

 import * as Location from 'expo-location'; import * as TaskManager from 'expo-task-manager' import * as BackgroundFetch from 'expo-background-fetch const LOCATION_TASK_NAME = 'background-location-task'; useEffect(()=>{ async function getBackgroundLocationAsync(){ let {status} = await Location.requestBackgroundPermissionsAsync() if(status!=='granted'){ setErrorMsg('Permission to access background location was denied') return; } if(status ==='granted'){ await Location.startLocationUpdatesAsync(LOCATION_TASK_NAME,{ accuracy: Location.Accuracy.Balanced, }) } getBackgroundLocationAsync() }, [], ) TaskManager.defineTask(LOCATION_TASK_NAME,({data, error})=>{ if(error){ return; } if(data){ const{locations}=data } })
about 4 years ago · Santiago Gelvez
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