Huawei Kit pro Umístění Reagovat Native, addFusedLocationEventListener metoda nemá vyvolat zpětné volání

0

Otázka

Nastavení huawei umístění soupravy pro získání postavení zařízení prodloužení, když aplikace v použití, po instalaci z https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides-V1/config-agc-0000001050197382-V1

nemáme skutečné huawei zařízení, jsme pomocí cloud ladění

Zkuste realizovat sledovat gps polohu přesčas se všemi těmito syntaxe

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

Kód úspěšně uplatnit init, requestLocationUpdatesWithCallbackEx, ale log z konzole addFusedLocationEventListener nikdy vyvolat

Už zase na hms core app povolení pro umístění, hasPermission také se vrátil pravda

Zkoušel locationRequest možností, ze problém s reagovat native @hmscore/reagovat-nativní-hms-umístění komentáře, stále nefunguje

Jak můžeme opravit tyto??

1

Nejlepší odpověď

1

Myslím, že by to mohlo být použití problém. Funkce addingFusedLocationEventListener je přidat FusedLocationEvent Posluchač. Tato funkce se spustí pouze tehdy, když FusedLocationEvent stát.

Ve vašem popisu, odstranit removeFusedLocationEventListener po addFusedLocationEventListenerpřidaná posluchač je také odstraněn.

Kromě toho se doporučuje použití samostatné funkce místo přímo definování vstupních parametrů.

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

Aktualizován můj kód, dali jsme removeFusedLocationEventListener ne přímo po addFusedLocationEventListenerdáme removeFusedLocationEventListener uvnitř useEffect funkce vyčištění, i když jsme se odstranit removeFusedLocationEventListener nevyvolává to addFusedLocationEventListener zpětné volání příliš
Vina

Ahoj @shirley, jsem zjistil, že nastavit locationRequest přednost 200 nefungovalo, pracovat pouze s prioritou 100, víte proč? nebo jak můžeme nastavit s vysokou přesností polohu?
Vina

ahoj@Vina, myslím, že nastavit locationRequest prioritu 100 může také splňovat požadavky. Podle dokumentů, v současné době, high-přesné umístění schopnost Umístění Kit je k dispozici pouze v Shenzhen, Guangzhou, Suzhou, Hangzhou, Chongqing, Chengdu, Tianjin, a Dongguan v Čínské pevnině. Další města budou podporovány v blízké budoucnosti.
shirley

Poznamenal, díky moc @shirley za pomoc :)
Vina

V jiných jazycích

Tato stránka je v jiných jazycích

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