在 iPhone 7 上 React Native 地理定位标题始终为 -1
Posted
技术标签:
【中文标题】在 iPhone 7 上 React Native 地理定位标题始终为 -1【英文标题】:React Native geolocation heading is always -1 on iPhone 7 【发布时间】:2018-08-19 01:26:42 【问题描述】:我面临一个几周都无法解决的问题。
任务:我注意观察设备的位置和方向。
解决方案:我使用文档中描述的方法
this.watcher = navigator.geolocation.watchPosition((position) =>
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
const heading = position.coords.heading;
this.setState(
latitude: latitude,
longitude: longitude,
heading: heading
);
,
(error) =>
console.log(`error: $error`);
,
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 0
);
Eevrything 在模拟器上运行良好。但在真正的 ios 设备上,标题始终为 -1。
我的项目使用 RN 0.54。但是,我刚刚通过react-native init
创建了具有 RN 0.56 的新项目,并且行为是相同的。
问题是在 react-native-maps 包中,用户方向以完美的方式呈现,所以我认为 React Native 可能存在一些问题
有什么帮助吗?
【问题讨论】:
【参考方案1】:由于 React Native 地理定位是网络地理定位 (see docs) 的扩展, 它将方向(标题)作为最后两个位置之间的差异。在低速或用户停留时不工作(返回-1)。
这很奇怪,因为我希望 RN 从内置的“指南针”中获取设备航向。
弹出应用的解决方案:使用第三方库react-native-heading,即使在用户停留时也能获得设备加热。
世博会解决方案:应该没有这样的问题,因为世博会使用内置指南针而不是网络地理定位。
【讨论】:
【参考方案2】:使用 Location.getHeadingAsync()
我能够得到一个不为 -1 的航向。
查看此链接以了解我正在使用的 expo 方法: https://docs.expo.io/versions/latest/sdk/location#expolocationgetheadingasync-215
【讨论】:
我不使用expo,我开发弹出的rn app以上是关于在 iPhone 7 上 React Native 地理定位标题始终为 -1的主要内容,如果未能解决你的问题,请参考以下文章
React-Native 远程调试器无法在 iPhone 上运行
React-Native AsyncStorage 使用 iPhone 模拟器将数据保存在磁盘上的啥位置?
在 React Native 的 iPhone 设置上手动禁用后如何检测 PushNotificationIOS 状态?