極光推送
jpush-react-native是極光推送官方開發(fā)的 React Native 版本插件广匙,用于消息推送允趟。
// 安裝
$ npm install jpush-react-native --save
$ npm install jcore-react-native --save
$ react-native link jpush-react-native
$ react-native link jcore-react-native
link后需要輸入極光推送的appkey
link完成后會自動(dòng)添加一些配置,有一些手動(dòng)的配置仍然需要更改,參考 https://github.com/jpush/jpush-react-native鸦致, 可以詳細(xì)查看一下文檔潮剪,容易遺漏的是我下面的內(nèi)容,不細(xì)看容易忽略分唾,吃過的虧啊~
import cn.jpush.reactnativejpush.JPushPackage; // <-- 導(dǎo)入 JPushPackage?古觥!U狼恰;∮!U墼摇?戳啤!D朗凇>榫酢!
public class MainApplication extends Application implements ReactApplication {
// 設(shè)置為 true 將不會彈出 toast6锰印!5豢稀3撂睢!S铀瘛R砟帧!=场A攒!J癖浮关摇!
private boolean SHUTDOWN_TOAST = false;
// 設(shè)置為 true 將不會打印 log!D敫蟆J涫!V住O芏谩3钭隆!Mげ 6旌堋!W锾4僦蟆!
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) // <-- 添加 JPushPackageP刂搿N垡稹!T嵯睢E⒌薄!C裾洹襟士!
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
另外在推送時(shí)模擬器報(bào)錯(cuò),提示appkey和包名不一致嚷量,主要原因是在創(chuàng)建極光應(yīng)用時(shí)包名和本地項(xiàng)目名稱不一致陋桂,統(tǒng)一一下即可~,可以參考導(dǎo)入極光包時(shí)的手動(dòng)配置第一項(xiàng):如下
android {
defaultConfig {
applicationId "yourApplicationId" //在此修改包名蝶溶,
...
manifestPlaceholders = [
JPUSH_APPKEY: "yourAppKey", //在此替換你的APPKey(第一次link時(shí)會自動(dòng)生成)
APP_CHANNEL: "developer-default" //應(yīng)用渠道號
]
}
}
...
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation project(':jpush-react-native') // 添加 jpush 依賴
implementation project(':jcore-react-native') // 添加 jcore 依賴
implementation "com.facebook.react:react-native:+" // From node_modules
}
注意如果報(bào)錯(cuò):appkey無效還是什么玩意的嗜历,是因?yàn)橐坏O光創(chuàng)建的包名修改,appkey會失效抖所,需要?jiǎng)h除應(yīng)用重新創(chuàng)建一個(gè)