HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了navigator.geolocation.watchPosition在ios设备上无法正常工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的行为,无法找到解决方案.在我的React Native应用程序中,我使用Navigator.geoLOCATIOn来确定当前位置.我的应用程序与Facebook的地理位置代码中的示例几乎完全相同.

在模拟器中我的应用程序运行完美,但是当我将它部署到我的iphone时,返回的位置(通过getCurrentPosition和watchPosition)不正确.例如,速度和航向为-1,精度为65.经度和纬度似乎是有效的,但不是我的实际位置(在另一个国家).
无论我是通过调试还是发布将应用程序部署到iphone,它总是会做出同样的反应.

但是,如果我以TomTom开始并将此应用程序放在后台,然后启动我的GeoLOCATIOnExample应用程序,那么一切正常.

我创建的应用程序如下:

react-native init GeoLOCATIOnExample

然后我用这段代码替换了index.ios.js文件.

import React,{ Component } from 'react';
import {
  AppRegistry,StyleSheet,Text,View
} from 'react-native';

export default class GeoLOCATIOnExample extends React.Component {
  state = {
    initialPosition: 'unkNown',lastPosition: 'unkNown',};

  watchID: ?number = null;

  componentDidMount() {
    navigator.geoLOCATIOn.getCurrentPosition(
      (position) => {
        var initialPosition = JSON.Stringify(position);
        this.setState({initialPosition});
      },(error) => alert(JSON.Stringify(error)),{enableHighAccuracy: true,timeout: 20000,maximumAge: 1000}
    );
    this.watchID = navigator.geoLOCATIOn.watchPosition((position) => {
      var lastPosition = JSON.Stringify(position);
      this.setState({lastPosition});
    });
  }

  componentWillUnmount() {
    navigator.geoLOCATIOn.clearWatch(this.watchID);
  }

  render() {
    return (
      <View style={styles.main}>
        <Text>
          <Text style={styles.@R_618_10283@E}>Initial position: </Text>
          {this.state.initialPosition}
        </Text>
        <Text>
          <Text style={styles.@R_618_10283@E}>Current position: </Text>
          {this.state.lastPosition}
        </Text>
      </View>
    );
  }
}

var styles = StyleSheet.create({
  main: {
    margin: 30
  },@R_618_10283@e: {
    fontWeight: '500',},});

AppRegistry.registerComponent('GeoLOCATIOnExample',() => GeoLOCATIOnExamplE);

解决方法

(第一个选项)添加参数{enableHighAccuracy:true,timeout:20000,maximumAge:1000,precision:10 //十米不在文档中} (第2选项)设定第28行   #define RCT_DEFAULT_LOCATION_ACCURACY kCLLOCATIOnAccuracyBest //认为kCLLOCATIOnAccuracyHundredMeters

大佬总结

以上是大佬教程为你收集整理的navigator.geolocation.watchPosition在ios设备上无法正常工作全部内容,希望文章能够帮你解决navigator.geolocation.watchPosition在ios设备上无法正常工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。