Using npm:
npm install --save react-native-baidu-geolocation
or using yarn:
yarn add react-native-baidu-geolocation
react-native link react-native-baidu-geolocation
Android
- In
android/app/build.gradle
:
dependencies {
...
compile "com.facebook.react:react-native:+" // From node_modules
+ compile project(':react-native-baidu-geolocation')
...
}
- In
android/settings.gradle
:
...
include ':app'
+ include ':react-native-baidu-geolocation'
+ project(':react-native-baidu-geolocation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-baidu-geolocation/android')
...
- In
MainApplication.java
:
...
+ import com.rnbaidulocation.RNBaidulocPackage;
public class MainApplication extends Application implements ReactApplication {
...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
+ new RNBaidulocPackage()
);
}
...
}
- In
MainActivity.java
:
...
+ import com.rnbaidulocation.RNBaidulocPackage;
public class MainActivity extends ReactActivity {
...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
+ new RNBaidulocPackage()
);
}
}
- In
AndroidManifest.xml
+ <meta-data
+ android:name="com.baidu.lbsapi.API_KEY"
+ android:value="Your AK" />
+ <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>
iOS
In XCode, in the project navigator:
- Right click Libraries
- Add Files to [your project's name]
- Go to
node_modules/react-native-baidu-geolocation/ios
- Add the
RNBaiduLocation.xcodeproj
file
Click on project General tab
- Under Linked Frameworks and Libraries click
+
and addlibstdc++.6.0.9.tbd
,libsqlite3.0.tbd
,RNBaiduLocation.framework
,BaiduMapAPI_Search.framework
,BaiduMapAPI_Base.framework
,BaiduMapAPI_Location.framework
Click on project Build Settings tab
- Look for Framework Search Paths and make sure it contain
$(SRCROOT)/../node_modules/react-native-baidu-geolocation/ios/RNBaiduLocation/vender
- Look for Header Search Paths and make sure it contain
$(SRCROOT)/../node_modules/react-native-baidu-location/ios/RNBaiduLocation
(Mark as recursive)
In the project navigator:
- Click Info.plist
- Add the
NSLocationWhenInUseUsageDescription
to yourInfo.plist
with strings describing why your app needs these permissions.
In AppDelegate.m
+ _mapManager = [[BMKMapManager alloc] init];
+ BOOL ret = [_mapManager start:@"Your AK" generalDelegate:nil];
+ if (!ret) {
+ NSLog(@"baidu map error.");
+ }
Run your project (Cmd+R)
See the example
...
import NRBaiduloc from 'react-native-baidu-geolocation';
NRBaiduloc.start();
...