官方文档https://docs.jiguang.cn/jpush/client/client_plugins/
首先在项目下安装以下2个插件
npm install jpush-react-native --save
npm install jcore-react-native --save
然后link一下
react-native link
react-native link实际所的事情,点击查看
jpush-react-native和jcore-react-native安装完毕后,
修改/android/app/build.gradle配置:
android {
defaultConfig {
applicationId "yourApplicationId"//你的package名字
...
manifestPlaceholders = [
JPUSH_APPKEY: "yourAppKey", //在此替换你的APPKey,就是极光后台给你的key
APP_CHANNEL: "developer-default" //应用渠道号,无需修改,写死developer-default即可
]
}
}
...
dependencies {
compile fileTree(dir: "libs", include: ["*.jar"])
compile project(':jpush-react-native') // 添加 jpush 依赖
compile project(':jcore-react-native') // 添加 jcore 依赖
compile "com.facebook.react:react-native:+" // From node_modules
}
将此处的 yourApplicationId 替换为你的项目的包名;yourAppKey 替换成你在官网上申请的应用的 AppKey。
别忘了下面这2行
检查android\app\src\main\AndroidManifest.xml配置,有没有增加 <meta-data> 部分。
<application
...
<!-- Required . Enable it you can get statistics data with channel -->
<meta-data android:name="JPUSH_CHANNEL" android:value="${APP_CHANNEL}"/>
<meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}"/>
</application>
修改android\app\src\main\java\com\项目名\MainApplication.java
import cn.jpush.reactnativejpush.JPushPackage; // <-- 导入 JPushPackage
public class MainApplication extends Application implements ReactApplication {
// 设置为 true 将不会弹出 toast
private boolean SHUTDOWN_TOAST = false;
// 设置为 true 将不会打印 log
private boolean SHUTDOWN_LOG = false;
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected String getJSMainModuleName() { // rn 0.49 后修改入口为 index
return "index";
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG) // <-- 添加 JPushPackage
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
打开android/settings.gradle,添加如下代码
include ':jpush-react-native'
project(':jpush-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jpush-react-native/android')
include ':jcore-react-native'
project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')
打开android\app\src\main\java\com\项目名\MainActivity.java,添加以下代码
import android.os.Bundle;
import cn.jpush.reactnativejpush.JPushPackage;
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);
}
这样就完成了所有的配置。接下来就可以在 JS 中调用插件提供的 API 了。
配置完毕后,可用官方demo https://github.com/jpush/jpush-react-native/blob/master/example/App.js#L113 进行测试.
使用方法:全文复制上述demo代码,生成apk,去极光后台发送消息,正常情况就可以立即收到消息了.
其他使用方法:如跳转到指定页面
环境配置完毕后,一定要调用jpush的init方法初始化一下,才可以收到推送