$ npm install rn-bdlocation --save
$ react-native link rn-bdlocation
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜rn-bdlocation
and addRNBaiduLocation.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNBaiduLocation.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.reactlibrary.RNBaiduLocationPackage;
to the imports at the top of the file - Add
new RNBaiduLocationPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':rn-bdlocation' project(':rn-bdlocation').projectDir = new File(rootProject.projectDir, '../node_modules/rn-bdlocation/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':rn-bdlocation')
####IOS
- Drag 'node_modules/rn-bdlocation/ios/BMKLocationKit.framework' to your project in xcode
Build Phases
➜Link binary with libaries
add
BMKLocationKit.framework
CoreLocation.framework
SystemConfiguration.framework
Security.framework
libsqlite3.0.tbd
CoreTelephony.framework
libc++.tbd
AdSupport.framework
- Open
Build Settings
➜Framework Search Paths
add $(SRCROOT)/../node_modules/rn-bdlocation/ios - Open AppDelegate.m
#import "AppDelegate.h"
#import <RNBaiduLocation.h> //ADD THIS
......
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....
[RNBaiduLocation setKey:yourApiKey]; //ADD THIS
....
return YES;
}
1.open AndroidManifest.xml
<manifest>
.....
<application>
...... //ADD BEHIND THESE
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value=${yourApiKey}>
</meta-data>
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service>
....
</application>
</manifest>
import RNBaiduLocation from 'rn-bdlocation';
interface Location{
latitude:number;
longitude:number;
country:string;
city:string;
province:string;
district:string;
street:string;
streetNumber:string;
cityCode:string;
}
interface CheckProps {
gpsIsOpen:boolean;
gpsPermissionIsOpen:boolean;
}
init:()=>Promise<void>; //when App start use
getLocation:()=>Promise<Location>;
toGpsSetting:()=>Promise<void>; //only Android
toAppSetting:()=>Promise<void>;
checkPermission:()=>Promise<CheckProps>;