android配置jpush方法-react native版

官方文档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
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,去极光后台发送消息,正常情况就可以立即收到消息了.

其他使用方法:如跳转到指定页面

http://bbs.reactnative.cn/topic/3505/%E7%94%A8-jpush-react-native-%E6%8F%92%E4%BB%B6%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8E%A8%E9%80%81%E5%8A%9F%E8%83%BD-android-%E7%AF%87

猜你喜欢

转载自blog.csdn.net/aexwx/article/details/79470975