「这是我参与2022初次更文应战的第 3 天,活动详情检查:2022初次更文应战」。

项目预备

提前声明,本文针对的包版本如下:

在React Native项目中配置高德地图
假如你已经有项目了,请越过这一步哈~

首要,请举起你的双手,先创建一个lesson4的项目:

npx react-native init lesson4
cd lesson4
yarn ios # 发动安卓
yarn android # 发动ios

接下来不出意外,你就能看到那了解的页面了,因为我电脑比较渣,所以我只发动了ios端:

看到这个页面之后,再装置一些零零碎碎,如导航、redux等,当然假如你不需求能够不装~

yarn add @react-navigation/bottom-tabs @react-navigation/native @react-navigation/native-stack react-native-elements react-native-safe-area-context react-native-screens react-native-vector-icons react-native-webview redux react-redux redux-saga redux-thunk
cd ios && pod install && cd..

还有,不要忘记单独链接下ios包:

cd ios && pod install && cd..

装置高德地图

yarn add react-native-amap3d
cd ios && pod install && cd .. 
# 下一步的发动能够在装备key之后再履行
yarn ios

装备key

首要创建新应用:

在React Native项目中配置高德地图

然后需求再装备key,这个ios和android不同,需求分别装备:

iOS

  1. 获取高德 Key,关于Bundle ID的获取检查下一步。

在React Native项目中配置高德地图

2.获取Bundle ID。

用xcode翻开lesson4.xcodeproj

在React Native项目中配置高德地图

在React Native项目中配置高德地图

最后你就得到了这样的一个key,等下就能够用啦~

在React Native项目中配置高德地图

项目中运用高德地图

经历了以上苦难,你就能够在ios端运用高德地图啦~

首要修正代码,保证在运用高德地图之前先履行以下代码,比如我就放在了App.js中。

import { AMapSdk } from "react-native-amap3d";
AMapSdk.setApiKey(
  Platform.select({
    android: "c52c7169e6df23490e3114330098aaac",
    ios: "186d3464209b74effa4d8391f441f14d",
  })
);

接下来发动下项目?No,现在的地图包还有bug,lesson4/node_modules/react-native-amap3d/lib/ios/MapView下有4个文件报错,这个时候我们需求去手动去修正一些代码,如下图所示,把下面代码注释掉即可:

在React Native项目中配置高德地图

假如你问我为什么知道这些修正,很简单,发动的时候报错了,按照报错信息的提示去修正就能够了~

当然我现在的修正只是针对我现在在用的版本号,假如你接下来发现你的版本里有不同的过错,那就自己再依据提示信息修正吧。 接下来就能够完成发动了:

yarn ios

可是到这儿还没完,因为我们刚刚修正的是node_modules,这个可是每次装都是新文件,这个修正也不可能传到github托管,团队更不可能每个人都要手动维护一份node_modules。那怎么办呢,很简单,打补丁吧~

定制依赖(打补丁)

  1. 装置
yarn add patch-package
  1. 修正package.json,scripts 中参加
 "postinstall": "patch-package"
  1. 修正 node_modules 中的源码
  2. 履行
yarn patch-package react-native-amap3d

此刻会生成一个如下所示的patches文件:

在React Native项目中配置高德地图

好了,到现在为止,相信你不仅学到了如何如安在RN中装备高德地图,更学会了定制依赖,假如你想看实现的代码,来这儿~