导航器地理位置getcurrentposition不返回任何内容

时间:2019-06-04 18:56:51

标签: react-native-android

我正在尝试记录移动设备的当前位置。 我从youtube上的旧教程中获得了此代码,但现在对我而言它并不起作用,我不知道为什么。

以下代码。创建一个按钮,该按钮onclick会触发一个功能,该功能应记录用户的位置。 不幸的是,什么也没有发生。

这是代码:

        /**
     * Sample React Native App
     * https://github.com/facebook/react-native
     *
     * @format
     * @flow
     */

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import FetchLocation from './components/FetchLocation.js';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
  android:
    'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

type Props = {};
export default class App extends Component<Props> {


  error = (err) => {
    console.log(err);
  }
  success = (suc) => {
    console.log(suc);
  }

  getUserLocationHandler = () => {
    navigator.geolocation.getCurrentPosition(this.success, this.error, { enableHighAccuracy: true, timeout: 20, maximumAge: 1000 });
  } 

  render() {
    return (
      <View style={styles.container}>
       <FetchLocation onGetLocation={this.getUserLocationHandler} />
      </View>
    );
  }
}


这是FetchLocation.js文件:


import React from 'react';
import { Button } from 'react-native';

const fetchLocation = props => {
    return (
        <Button title="Get Location" onPress={props.onGetLocation} />
        );
}

export default fetchLocation;

这是我的Android清单:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.myfirstrnproject">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

问题是,当我单击按钮时,什么也没有发生...位置功能根本不触发。它不会显示任何错误。

非常感谢您的帮助。

0 个答案:

没有答案