「这是我参与2022初次更文应战的第 3 天,活动详情检查:2022初次更文应战」。
项目预备
提前声明,本文针对的包版本如下: 假如你已经有项目了,请越过这一步哈~
首要,请举起你的双手,先创建一个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
首要创建新应用:
然后需求再装备key,这个ios和android不同,需求分别装备:
iOS
- 获取高德 Key,关于Bundle ID的获取检查下一步。
2.获取Bundle ID。
用xcode翻开lesson4.xcodeproj
最后你就得到了这样的一个key,等下就能够用啦~
项目中运用高德地图
经历了以上苦难,你就能够在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个文件报错,这个时候我们需求去手动去修正一些代码,如下图所示,把下面代码注释掉即可:
假如你问我为什么知道这些修正,很简单,发动的时候报错了,按照报错信息的提示去修正就能够了~
当然我现在的修正只是针对我现在在用的版本号,假如你接下来发现你的版本里有不同的过错,那就自己再依据提示信息修正吧。 接下来就能够完成发动了:
yarn ios
可是到这儿还没完,因为我们刚刚修正的是node_modules,这个可是每次装都是新文件,这个修正也不可能传到github托管,团队更不可能每个人都要手动维护一份node_modules。那怎么办呢,很简单,打补丁吧~
定制依赖(打补丁)
- 装置
yarn add patch-package
- 修正package.json,scripts 中参加
"postinstall": "patch-package"
- 修正 node_modules 中的源码
- 履行
yarn patch-package react-native-amap3d
此刻会生成一个如下所示的patches文件:
好了,到现在为止,相信你不仅学到了如何如安在RN中装备高德地图,更学会了定制依赖,假如你想看实现的代码,来这儿~