我正在使用js SDK在我的React Native应用程序中实现matchmore。
允许访问我的位置。 当显示 localPersistenceManager 时,我发现该位置为空并显示为
location: { latitude: 0, longitude: 0, altitude: 0 }
整个结果是这样的
{ _devices:
[ { name: 'Nexus_5X_API_28',
location: { latitude: 0, longitude: 0, altitude: 0 },
deviceType: 'MobileDevice',
id: '20f4a1d9-6c55-49d2-aa7c-5278eec6ccc6',
createdAt: 1555321201061,
platform: 'android',
deviceToken: 'Nexus_5X_API_28_device_token_is_unique' } ],
_publications: [],
_subscriptions: [],
_defaultDevice:
{ name: 'Nexus_5X_API_28',
location: { latitude: 0, longitude: 0, altitude: 0 },
deviceType: 'MobileDevice',
id: '20f4a1d9-6c55-49d2-aa7c-5278eec6ccc6',
createdAt: 1555321201061,
platform: 'android',
deviceToken: 'Nexus_5X_API_28_device_token_is_unique' } }
如何使应用程序检测正确的位置?
谢谢
答案 0 :(得分:0)
您可以通过更新Matchmore管理器来手动设置设备位置:
navigator.geolocation.getCurrentPosition(
position => {
const location = JSON.stringify(position);
console.log(location)
this.setState({ location });
if (this.manager){
this.manager.updateLocation({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
altitude: 0
})
}
},
error => Alert.alert(error.message),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
完成后,在设备上创建的发布和订阅将具有您当前的位置。