Huawei Locație Kit pentru React Nativ, addFusedLocationEventListener metodă nu declanșa apel invers

0

Problema

Configurare huawei locație kit pentru obtinerea poziția dispozitivului de prelungiri, când aplicații în uz, urmat de configurare de la https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides-V1/config-agc-0000001050197382-V1

nu avem real dispozitiv huawei, suntem folosind cloud depanare

Încercați să pună în aplicare pentru a viziona locația gps ore suplimentare, cu toate acestea sintaxa

// ------ 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
}, [])

Codul invoca cu succes la init, requestLocationUpdatesWithCallbackExdar consola jurnal de addFusedLocationEventListener nu invoca

Deja activa pe hms core app permisiunea de locație, hasPermission de asemenea, a revenit adevărat

Încercat locationRequest opțiuni de problema cu react nativ @hmscore/reacționa-nativ-hms-locație comentarii, încă nu funcționează

Cum putem rezolva aceste??

1

Cel mai bun răspuns

1

Cred că ar fi o problemă utilizare. Funcția de addingFusedLocationEventListener este de a adăuga FusedLocationEvent Ascultător. Această funcție este activată numai atunci când FusedLocationEvent se întâmple.

Din descrierea ta, șterge removeFusedLocationEventListener după addFusedLocationEventListener, a adăugat ascultător este, de asemenea, șterse.

În plus, vă sunt sfătuiți să utilizeze funcții independente în loc de direct definirea lor în parametri de intrare.

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

Actualizat codul meu, am pus removeFusedLocationEventListener nu direct dupa addFusedLocationEventListeneram pus removeFusedLocationEventListener în interiorul useEffect funcția de curatare, chiar și atunci când vom elimina removeFusedLocationEventListener nu invoca addFusedLocationEventListener callback prea
Vina

Salut @shirley, am constatat că a înființat locationRequest prioritate la 200 nu a lucrat, lucrează numai cu prioritate 100, știi de ce? sau cum putem setup cu mare precizie locația?
Vina

salut@Vina, cred că a înființat locationRequest prioritate la 100, de asemenea, poate satisface cerințele. Potrivit docs, în prezent, de înaltă precizie locația capacitatea de Locație Kit-ul este disponibil numai în Shenzhen, Guangzhou, Suzhou, Hangzhou, Chongqing, Chengdu, Tianjin, și Dongguan în China continentală. Mai multe orașe vor fi susținute în viitorul apropiat.
shirley

De remarcat, multumesc mult @shirley pentru ajutor :)
Vina

În alte limbi

Această pagină este în alte limbi

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