Skip to content

xinlc/react-native-baidu-location

Repository files navigation

react-native-baidu-location

npm package npm downloads

TOC

Installation

Using npm:

npm install --save react-native-baidu-geolocation

or using yarn:

yarn add react-native-baidu-geolocation

Linking

Automatic

react-native link react-native-baidu-geolocation

Manual

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')
...

With React Native 0.29+

  • 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()
      );
    }

    ...
  }

With older versions of React Native:

  • 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 add libstdc++.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 your Info.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)

Usage

See the example

...
import NRBaiduloc from 'react-native-baidu-geolocation';

NRBaiduloc.start();
...