- jpush-react-native 自 1.4.4 之后, 需要安装 jcore-react-native
- 安装完后,需要执行
react-native link
。如果出错了,无需惊慌,手动配置一下即可,具体可参考这篇文章
npm install jpush-react-native jcore-react-native --save
配置包括两个步骤,自动配置和手动操作。
如果工程不是通过 Cocoapods 来集成 ReactNative 的可以直接使用下面代码来 link 插件。
react-native link
根据提示,输入 appKey
等即可。
自动配置操作会自动插入 Native 代码(iOS 中使用 Appdelegate.m 文件名,如果修改了该文件名需要手动插入代码),这个部分用户无需关系具体细节。
- 在 Podfile 中添加如下代码: 这里备注下,第二个pod,官方里面没有,iOS编译一直报错(我这里31个错误,都是找不到文件),找了半天也没找到,参考这个 https://community.jiguang.cn/t/topic/29969
pod 'JPushRN', :path => '../node_modules/jpush-react-native'
pod 'JCoreRN', :path => '../node_modules/jcore-react-native'
- 终端执行如下指令:
pod install
-
在 iOS 工程中设置 TARGETS-> BUILD Phases -> LinkBinary with Libraries 找到 UserNotifications.framework 把 status 设为 optional
-
在 iOS 工程中如果找不到头文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下路径
$(SRCROOT)/../node_modules/jpush-react-native/ios/RCTJPushModule
- 在 xcode8 之后需要点开推送选项: TARGETS -> Capabilities -> Push Notification 设为 on 状态
- 修改 app 下的 build.gradle 配置:
your react native project/android/app/build.gradle
android {
defaultConfig {
applicationId "yourApplicationId"
...
manifestPlaceholders = [
JPUSH_APPKEY: "yourAppKey", //在此替换你的APPKey
APP_CHANNEL: "developer-default" //应用渠道号
]
}
}
...
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
}
将此处的 yourApplicationId 替换为你的项目的包名;yourAppKey 替换成你在官网上申请的应用的 AppKey。
Android v1.6.6 版本后新增 notifyJSDidLoad,请务必在接收事件之前调用此方法。
- Android v1.6.7 新增 API
jumpToPushActivity
,使用参考 demo