jpush-react-native和
jcore-react-native之后,执行react-native link会还有一部分需要自己配置,而且执行react-native link可能会报错,所以个人建议还是手动配置比较好,
1、检查android/settings.gradle下是否引入
include ':app', ':jpush-react-native', ':jcore-react-native'
project(':jpush-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jpush-react-native/android')
project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')
2、检查android/app/build.gradle
在defaultConfig添加manifestPlaceholders = [
JPUSH_APPKEY: "ca6dd83870c401f5dd9734af",//这里为极光推送得key
APP_CHANNEL: "developer-default"
]
defaultConfig {
applicationId "com.mymapsone"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
manifestPlaceholders = [
JPUSH_APPKEY: "ca6dd83870c401f5dd9734af",
APP_CHANNEL: "developer-default"
]
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
在dependencies里添加
compile project(':jpush-react-native')
compile project(':jcore-react-native')
3、在清单文件里面得application标签里面添加
<!--极光推送-->
<meta-data android:name="JPUSH_CHANNEL" android:value="${APP_CHANNEL}"/>
<meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}"/>
4、在MainApplication.java里面添加如下,
import cn.jpush.reactnativejpush.JPushPackage;
导入JpushPackage
在getPackages得方法里面添加
new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG),
SHUTDOWN_TOAST,SHUTDOWN_LOG都是Boolean值,在外部类定义
完整例子代如下
private boolean SHUTDOWN_TOAST = false;//定义两个值
private boolean SHUTDOWN_LOG = false;
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG),
new RCTCameraPackage(),
new PickerPackage()
);
}
};
5、在MainActivity.java里
导入import cn.jpush.android.api.JPushInterface;
重写这几个方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
JPushInterface.init(this);
}
@Override
protected void onPause() {
super.onPause();
JPushInterface.onPause(this);
}
@Override
protected void onResume() {
super.onResume();
JPushInterface.onResume(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
}