Huawei location Kit pour Réagir Natif, addFusedLocationEventListener méthode ne déclenchent pas de rappel

0

La question

Le programme d'installation le huawei location kit pour l'obtention de la position de l'appareil d'heures supplémentaires lorsque les applications en cours d'utilisation, suivi de l'installation de https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides-V1/config-agc-0000001050197382-V1

nous n'avons pas de réel huawei device, nous utilisons le cloud de débogage

Essayez de mettre en œuvre pour regarder la localisation gps des heures supplémentaires avec tous ces 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
}, [])

Le code avec succès invoquer la init, requestLocationUpdatesWithCallbackExmais , journal de la console de addFusedLocationEventListener ne jamais invoquer

Déjà sur le hms core application l'autorisation pour l'emplacement, hasPermission également renvoyé true

Essayé le locationRequest options de problème avec réagissent natif @hmscore/réagir-native-hms-emplacement des commentaires, ne fonctionne toujours pas

Comment nous pouvons les corriger??

1

La meilleure réponse

1

Je pense qu'il pourrait être un problème d'utilisation. La fonction de addingFusedLocationEventListener est à ajouter FusedLocationEvent Auditeur. Cette fonction est déclenchée uniquement lorsque FusedLocationEvent arriver.

Dans votre description, supprimer removeFusedLocationEventListener après addFusedLocationEventListener, le port d'écoute est également supprimé.

En outre, il vous est conseillé d'utiliser des fonctions indépendantes au lieu de les définir dans les paramètres d'entrée.

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

Mis à jour mon code, nous avons mis l' removeFusedLocationEventListener pas directement après addFusedLocationEventListener, nous avons mis removeFusedLocationEventListener à l'intérieur de useEffect fonction de nettoyage, même quand on enlève le removeFusedLocationEventListener il n'a pas d'invoquer la addFusedLocationEventListener rappel trop
Vina

Salut @shirley, j'ai trouvé que l'ensemble de la locationRequest la priorité à 200 n'a pas travaillé, ne fonctionnent qu'avec priorité à 100, savez-vous pourquoi? ou comment nous pouvons le programme d'installation avec une grande précision de localisation?
Vina

salut@Vina, je pense que l'ensemble de la locationRequest la priorité à 100 peuvent également répondre aux exigences. Selon les docs, actuellement, la localisation de haute précision de la capacité de l'Emplacement Kit est disponible seulement à Shenzhen, Guangzhou, Suzhou, Hangzhou, Chongqing, Chengdu, Tianjin, et Dongguan, dans la partie continentale de chine. De plus, les villes vont être pris en charge dans un avenir proche.
shirley

A noté, merci beaucoup @shirley pour votre aide :)
Vina

Dans d'autres langues

Cette page est dans d'autres langues

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