使用react-native-amap-geolocation

1,201 阅读1分钟

背景

同时使用

"react-native-amap-geolocation": "^1.1.2",
"react-native-amap3d": "^2.0.1"

配置

安卓

android文件夹下
settings.gradle添加

include ':react-native-amap-geolocation'
project(':react-native-amap-geolocation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-amap-geolocation/lib/android')

复制代码app/src/main/项目名/MainApplication.java 添加

import cn.qiuxiang.react.geolocation.AMapGeolocationPackage;

复制代码添加 @Override protected List getPackages() {

  return Arrays.<ReactPackage>asList(
         new AMapGeolocationPackage(),
         ...
         );
}

复制代码app/build.gradle 添加

dependencies {
          implementation project(':react-native-amap-geolocation')
     ...
     }

代码IOS ios文件夹下
Podfile添加

   pod 'react-native-amap-geolocation', :path => '../node_modules/react-native-amap-geolocation/lib/ios'

复制代码进入ios文件夹下

pod install

进入Xcode 引入Pods文件夹下的AMap相关

重新运行App App.js

import {
  init,
  Geolocation,
  addLocationListener,
  start,
  stop,
  setLocatingWithReGeocode,
  setNeedAddress,
} from "react-native-amap-geolocation";

  async componentDidMount() {
      this.initLocation();
  }
  async initLocation() {
    if (Platform.OS === "ios") {
      // ios
      setLocatingWithReGeocode(true);
    } else {
      // 对于 Android 需要自行根据需要申请权限
      await PermissionsAndroid.requestMultiple([
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
      ]);
    }
    // 使用自己申请的高德 App Key 进行初始化
    await init({
      ios: "ioskey",
      android: "ankey",
    });

 
    Geolocation.getCurrentPosition(({ coords }) => {
      console.log(coords, "llllll000000000");
    });
    // 添加定位监听函数
    addLocationListener((location) => console.log(location, "??????oooo"));

    // 开始连续定位
    start();
  }