react-native集成react-native-amap (高德地圖)插件

reactnative?集成高德地圖(react-native-amap3d)?

react-native-amap3d三方庫安裝

react-native-amap?- npm

2018-10-09

1,react-native init --version="0.55.4" AmapDemo,//新建項目

? ? 然后用AS打開配置一下,配置一下gradle,如果在已有的RN項目上添加高德地圖插件,不需此步.

2,進入你的項目的根目錄下:如果是AmapDemo,

cd AmapDemo;??

npm i react-native-amap3d 或者?npm install react-native-amap3d //安裝高德地圖插件

我的項目名稱是是BaiduMapDemo:

在你的項目目錄下?安裝高德地圖插件

3,?react-native link? react-native-amap3d //將高德地圖插件關聯(lián)你的項目

將高德地圖插件關聯(lián)你的項目

4,配置秘鑰:

Application中導入key

5,在js 文件中導入地圖模塊

根目錄下的index.js

6,設置地圖狀態(tài)

所謂的地圖狀態(tài)包括:中心坐標(coordinate)、縮放級別(zoomLevel)、傾斜度(titl)、旋轉(zhuǎn)角度(rotation)、顯示區(qū)域(region)、地圖模式(mapType)。目前高德地圖支持5種地圖模式:

標準(standard)

衛(wèi)星(satellite)

導航(navigation)

公交(bus)

夜間(night)

MapView的控件的使用如圖所示

7,定位

定位的js代碼

以下是關于IOS的配置

? ??8,安裝pod?推薦:http://www.code4app.com/article/cocoapods-install-usage? 或者自己百度去安裝也行

????9,在項目文件夾中的IOS文件夾中配置pod文件

生成pod文件:http://lbsyun.baidu.com/index.php?title=iossdk/guide/create-project/cocoapods

配置如下:

? ? platform :ios, '8.0'

? ? ? ? target 'yourObjectName' do

? ? ? ? pod 'yoga', path: '../node_modules/react-native/ReactCommon/yoga/'

? ? ? ? pod 'React', path: '../node_modules/react-native/', :subspecs => [

? ? ? ? ? ? 'DevSupport',

? ? ? ? ? ? 'CxxBridge',

? ? ? ? ? ? 'RCTNetwork',

? ? ? ? ]

? ? ? ? pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'

? ? ? ? pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'

? ? ? ? pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

? ? ? ? pod 'react-native-amap3d', path: '../node_modules/react-native-amap3d/lib/ios/'

? ? end

? ? PS:? 為什么加這兩個? 'CxxBridge','RCTNetwork',

CxxBridge 好像因為版本的問題 之前RN版本升級過程中導致的,RCTNetwork 好像xcode7 之后的bug 相關具體原因

10,?執(zhí)行pod命令

pod install --verbose --no-repo-update(后面的參數(shù):省略升級CocoaPods的spec倉庫,加速安裝而已)

可能會遇到錯誤:

? ? ?1. 本地ReactCommon中是Yoga 而這里是yoga 跟自己本地不一致以及其他相似問題

? ? ? 2. 路徑錯誤: 之前react-native-amap3d有的版本中 ios/android文件夾直接在react-native-? amap3d文件夾中 不在lib中 根據(jù)本地實際情況安裝。

11,打開Xcode進行IOS配置(打開的是你項目中IOS文件夾下一個后綴名為xcworkspace的文件, 之后運行項目也是運行這個文件,不要在運行之前項目的xcodeproj文件的了。)

?? 1. 刪除Libraries中的Amap3D.xcodeproj文件

?? 2. 選中項目名稱->選擇Build Phases->Link Binary With Libraries中生成的amap3d.a文件 沒有不刪除

?? 3. 可能Search Path 或 Header 里面還有相關配置也干掉,不過我的沒有。

?? 這樣就能把之前l(fā)ink的內(nèi)容干掉了。

12. Xcode中找到Info.plist文件?

在App Transport Security Settings中 添加 Allow Arbitrary Loads? 對應值 YES

13. 獲取IOS和Android SDK Key: http://lbs.amap.com/api/android-sdk/guide/create-project/get-key

14. IOSAppDelegate.m中配置

添加 #import <AMapFoundationKit/AMapFoundationKit.h>

?以及配置你的key: [AMapServices sharedServices].apiKey = @"your key";

15. 配置android的key?

在android/app/src/main/AndroidManifest.xml中application標簽內(nèi)添加

<meta-data?android:name="com.amap.api.v2.apikey"??android:value="your key" />

16. 根據(jù)react-native-amap3d庫的文檔添加一個地圖頁面 注意樣式

17. 在Xcode中開始運行模擬器吧,可能會碰到以下問題:

? ? 1.debugger模式下沒有提示錯誤但是不顯示地圖:? sdk key 沒有配置對 或者 你的樣式有問題

? ? 2.Xcode Build的時候報錯 或者 直接運行的時候報錯

? ? ? 哪個Libraries中的庫報錯 刪除哪個庫里面的 類似 *-tvOs.a文件

? ? 3. folly/folly-config.h file not found

參考:https://github.com/facebook/react-native/issues/18683

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容