react-native 中配置极光推送 Android关键详细的说明与截图代码 找不到类Bundle/JPushInterface

react-native 中配置极光推送 Android关键详细的说明与截图代码
找不到类Bundle/JPushInterface
小白一枚 自己学习的总结 如有不对的地方请多包容
我的版本:
"react": "16.2.0",
"react-native": "0.52.2"
安装:
npm install --save jpush-react-native
npm install --save jpush-react-native ## jpush-react-native 1.4.2 版本以后需要同时安装 jcore-react-native
自动配置:
执行npm run configureJPush <yourAppKey>

//执行自动配置脚本后再执行 link 操作 react-native link
检查一下依赖关系中有没有添加jpush-react-native及jcore-react-native这两个依赖。
react-native Project/Android/app/ build.gradle
android {
defaultConfig {
applicationId "yourApplicationId"//你的包名
...
manifestPlaceholders = [
JPUSH_APPKEY: "yourAppKey", //在此替换你的APPKey
APP_CHANNEL: "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
}
检查android项目下的settings.gradle配置有没有包含以下内容:
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')
检查一下app的AndroidManifest配置,有没有增加<meta-data>部分
你的原始项目是/ android / app / AndroidManifest.xml
<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 Studio重新sync一下项目,应该能看到jpush-react-native以及jcore-react-native作为android库项目导进来了。




接下来:
添加JPushPackage
RN 0.29.0以上版本
打开应用程序的MainApplication.java文件,然后加入JPushPackage,
app/ 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);
}
}
如果运行时在 MainActivity.java文件进行配置的话会有下面的错误 这里不用配置 MainActivity.java文件
一直执行下去,运行app时你会发现有如下错误 (部分)



记住在RN0.29以上版本不需要对MainActivity.java 文件不需要配置 不需要配置 不需要配置
接下来就可以引用了 在android环境下)
import React , { Component } from 'react'
import {
Platform ,
Text ,
View
} from 'react-native'
import JPushModule from 'jpush-react-native'
export default class App extends Component {
componentDidMount () {
if ( Platform . OS === 'android' ) {
JPushModule. initPush ()
}
render()
{
return (
<View>
<Text> 基本推送配置完成 </Text>
</View>
)
}
}
}
你会发现在极客官网上推送不了信息 (不允许选择目标平台)

接着配置如下:
在应用信息中点击去完成推送设置


在这里进行设置 需要填写 !!包名!! 记住


填写完成后点击下载 Demo 下载完成后解压
打开Android Studio 点击fill->New->import Module 将引用后的文件引入
在这里会提示下载一个JPush SDK点击下载 然后在进行配置(不详细说自己瞎点就ok了)
配置完以后再右侧会多出一个文件夹 选择如下 运行run
你会看到这样一个界面 说明你成功了

然后在运行 app 做到这一步 就可以成功的接收推送信息了

在极客推送中点击 选择android平台
点击推送后

在手机上就可以看到推送的信息了..




剩下的你就可以去看看专门针对react-native的配置文档了API 进行配置了
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 极光推送集成荣耀离线推送需要进行以下步骤: 1. 下载并集成 React Native 极光推送 SDK,可参考官方文档进行集成。 2. 在荣耀开发者平台注册开发者账号,并创建应用,获取应用的 App ID 和 App Secret。 3. 在 React Native 极光推送 SDK 配置荣耀离线推送,具体配置方式如下: - 在 `AndroidManifest.xml` 文件添加以下代码: ``` <meta-data android:name="com.heytap.mcssdk.AppKey" android:value="YOUR_APP_ID" /> <meta-data android:name="com.heytap.mcssdk.SenderId" android:value="YOUR_APP_SECRET" /> ``` 其,`YOUR_APP_ID` 和 `YOUR_APP_SECRET` 分别为在荣耀开发者平台获取到的 App ID 和 App Secret。 - 在 `MainApplication.java` 文件添加以下代码: ``` import com.heytap.mcssdk.PushManager; import com.heytap.mcssdk.callback.PushCallback; public class MainApplication extends Application implements ReactApplication { @Override public void onCreate() { super.onCreate(); // 初始化荣耀离线推送 PushManager.getInstance().register(this, YOUR_APP_ID, YOUR_APP_SECRET, new PushCallback() { @Override public void onRegister(int i, String s) { // 注册结果回调 } @Override public void onUnRegister(int i) { // 注销结果回调 } @Override public void onSetPushTime(int i, String s) { // 设置免打扰时间结果回调 } @Override public void onGetPushStatus(int i, int i1) { // 获取推送状态结果回调 } @Override public void onGetNotificationStatus(int i, int i1) { // 获取通知状态结果回调 } }); } } ``` 其,`YOUR_APP_ID` 和 `YOUR_APP_SECRET` 分别为在荣耀开发者平台获取到的 App ID 和 App Secret。 4. 在荣耀开发者平台配置推送通道,具体配置步骤可参考官方文档。 完成以上步骤后,即可在 React Native 应用集成荣耀离线推送
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值