Huawei Ubicación Kit para Reaccionar Nativo, addFusedLocationEventListener método no se dispara la devolución de llamada

0

Pregunta

Configurar el huawei ubicación kit para conseguir la posición de dispositivo de horas extraordinarias cuando las aplicaciones en uso, seguido de la instalación de https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides-V1/config-agc-0000001050197382-V1

no tenemos real huawei del dispositivo, estamos usando la nube de depuración

Trate de poner en práctica para ver la ubicación gps de horas extras con todos estos sintaxis

// ------ Parent ------
// this put on the parent useEffect
HMSLocation.LocationKit.Native.init()
 .then(() => console.log('----------Success Initialize----------'))
 .catch((err) => alert(err.message))

// ------ Child ------
const stopWatchingLocation = () => {
  if (hasHms) {
    HMSLocation.FusedLocation.Events.removeFusedLocationEventListener(
      (res: LocationResult) => console.log('remove add listener', res),
    )
  } 
}

const startWatchingLocation = async () => {
  if (hasHms) {
      HMSLocation.FusedLocation.Native.requestLocationUpdatesWithCallbackEx(
          hwGeolocationOptions,
    )
      .then((res) => console.log('success request', res))
      .catch((error) => console.log('failed request', error))
    
    HMSLocation.FusedLocation.Events.addFusedLocationEventListener(
      (res: LocationResult) => console.log('result', res.lastHWLocation)
    )
  }
}

// implementation of add & remove event listener
useEffect(() => {
  startWatchingLocation() // inside here invoke addFusedLocationEventListener
  return stopWatchingLocation // inside here invoke, cleanup function removeFusedLocationEventListener
}, [])

El código de invocar correctamente el init, requestLocationUpdatesWithCallbackExpero de registro de la consola de addFusedLocationEventListener nunca invocar

Ya en el hms principal de la aplicación el permiso para la ubicación, hasPermission también devuelve true

Tratado de la locationRequest opciones de problema con reaccionar nativo @hmscore/reaccionar-nativo-hms-ubicación de los comentarios, todavía no funciona

Cómo podemos corregir estos??

1

Mejor respuesta

1

Yo creo que puede ser un problema de uso. La función de addingFusedLocationEventListener es para agregar FusedLocationEvent Oyente. Esta función se activa sólo cuando FusedLocationEvent suceder.

En su descripción, eliminar removeFusedLocationEventListener después de addFusedLocationEventListenerel agregado de escucha, también se eliminan.

Además, se recomienda el uso de funciones independientes en lugar de directamente definen en los parámetros de entrada.

handleLocationUpdate = (locationResult) => { console.log(locationResult); this.setState({ locationCallbackResult: locationResult }); }

requestLocationCallbackWithListener = () => {
  HMSLocation.FusedLocation.Native.requestLocationUpdatesWithCallbackEx(locationRequest)
    .then((res) => this.setState({ reqCode: res.requestCode }))
    .catch((err) => alert(err.message));
  HMSLocation.FusedLocation.Events.addFusedLocationEventListener(this.handleLocationUpdate);
  this.setState({ autoUpdateEnabled: true });
};

enter image description here

2021-11-24 07:20:30

Actualizado mi código, ponemos el removeFusedLocationEventListener no directamente después de addFusedLocationEventListenerponemos removeFusedLocationEventListener dentro de useEffect función de limpieza, incluso cuando se retire el removeFusedLocationEventListener no invocar la addFusedLocationEventListener devolución de llamada demasiado
Vina

Hola @shirley, me encontré con que configurar el locationRequest prioridad a 200 no funcionó, sólo trabajo con prioridad 100, ¿sabes por qué? o cómo podemos configurar con la alta precisión de la ubicación?
Vina

hola@Vina, creo que configurar el locationRequest prioridad a 100 también puede cumplir con los requisitos. De acuerdo a los docs, en la actualidad, la localización de alta precisión capacidad de Ubicación Kit está disponible sólo en Shenzhen, Guangzhou, Suzhou, Hangzhou, Chongqing, Chengdu, Tianjin, y Dongguan, en China continental. Más ciudades para el apoyo en el futuro cercano.
shirley

Señaló, gracias mucho @shirley por su ayuda :)
Vina

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................