RN安卓极光推送
申请极光帐号,创建应用,成功如下
sdk版本要求:
jpush-react-nativ要求jdk版本最少是25.0.0
第一步:
安装
打开终端,进入项目文件夹,执行以下命令:
npm install jpush-react-native --save
npm install jcore-react-native --save
安装之后,查看package.json,如下信息
第二部:
修改app/build.gradle
defaultConfig { applicationId "com.testoa" manifestPlaceholders = [ JPUSH_APPKEY: "dac3d1www0c10f5b09", //在此替换你的APPKey APP_CHANNEL: "fbc6d7bcrrr212217252" //应用渠道号 ] minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } }
dependencies {
//增加如下代码
compileproject(':jpush-react-native')
compileproject(':jcore-react-native')
}
第三部:
修改文件 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')
第四部:文件路径
MainApplication.java 文件,加入 JPushPackage:
部分代码:
package com.testoa; import android.app.Application; import com.facebook.react.ReactApplication; import cn.jpush.reactnativejpush.JPushPackage; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; import com.learnium.RNDeviceInfo.RNDeviceInfo; import java.util.Arrays; import java.util.List; public class MainApplication extends Application implements ReactApplication { 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 RNDeviceInfo(), new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG) ); } };
第五部:
修改 MainActivity.java
代码如***意导包
public classMainActivityextendsReactActivity{
...
@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);
}
}
第六部:修改 AndroidMainifest.xml
增加代码:
<meta-data android:name="JPUSH_CHANNEL" android:value="${APP_CHANNEL}"/> <meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}"/>
安装配置完毕
可以通过极光管理页面发送通知,也可以通过Api接口发送通知
使用例如:
import JPushModule from 'jpush-react-native';
componentDidMount() {
//获取registrationId,用于给用户增加设备别名和标签,接口APi里用到
JPushModule.getRegistrationID((registrationId)=> {
console.log(registrationId);
});
//通知监听
JPushModule.addReceiveNotificationListener((map) => {
console.log("alertContent: " + map.alertContent);
console.log("extras: " + map.extras);
var extra = JSON.parse(map.extras);
console.log(extra.key + ": " + extra.value);
});
}
componentWillUnmount(){
console.log("Will clear all notifications");
JPushModule.clearAllNotifications();
}
Api接口下载地址:
https://docs.jiguang.cn/jpush/server/3rd/php_sdk/
device_example.php 设置标签
push_example.php 发送信息