小编maw*_*awi的帖子

navigator.geolocation.watchPosition在ios设备上无法正常工作

我的行为很奇怪,找不到解决方法。在我的React Native应用程序中,我正在使用navigator.geolocation确定当前位置。我的应用程序几乎与Facebook地理位置代码中的示例相同。

在模拟器中,我的应用程序可以正常运行,但是当我将其部署到iPhone时,返回位置(通过getCurrentPosition和watchPosition)是不正确的。例如,速度和航向为-1,精度为65。经度和纬度似乎是有效的,但我的真实位置(在另一个国家/地区)不是有效的。我是通过调试还是将应用程序发布到iPhone都无关紧要,它始终会做出相同的反应。

但是,如果我以TomTom为例启动此应用程序,然后将其放在后台,然后启动GeolocationExample应用程序,则一切都会正常进行。

我创建的应用程序如下:

react-native init GeolocationExample
Run Code Online (Sandbox Code Playgroud)

然后用此代码替换文件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() { …
Run Code Online (Sandbox Code Playgroud)

geolocation ios react-native

5
推荐指数
1
解决办法
1499
查看次数

标签 统计

geolocation ×1

ios ×1

react-native ×1