react xml_React-Native集成极光推送

版本号

"react-native": "0.57.2",
"jcore-react-native": "^1.3.0",
"jpush-react-native": "^2.5.0",

创建极光账号新建app

新建app

安卓填写包名

ios上传APNS证书文件(推送证书,和开发证书不同,需要单独申请,区分开发环境和生产环境)

安装依赖

注意: jpush-react-native 自 1.4.4 之后, 需要安装 jcore-react-native

yarn add jpush-react-native jcore-react-native

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
}
  • 修改android 项目下的 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 配置(project/android/app/src/main/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>
  • 在MainApplication.java注册模块(MainApplication.java)
import java.util.Arrays;
import java.util.List;

import cn.jpush.reactnativejpush.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() {
     @Override
     protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(new MainReactPackage(), new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG));
     }
 
     @Override

  • 重新同步项目
用Android Studio 打开项目,File => Sync
成功可以看到 jpush-react-native 以及 jcore-react-native 作为 android Library 项目导进来了

IOS

  • react-native link jpush-react-native
需要输入appid
  • 在 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 状态
  • 这两个库包含原生代码,在它们的文件夹下有一个.xcodeproj文件。 把这个文件拖到你的XCode工程下(通常拖到XCode的Libraries分组里)
RCTJCoreModule.xcodeproj
RCTJPushModule.xcodeproj

785eb0e854ba44c2663e12893cd480bc.png
  • 添加Link Binary With Libraries静态库文件
libRCTJCoreModule.a
libRCTJPushModule.a
  • 添加框架
CFNetwork.framework
CoreFoundation.framework
CoreTelephony.framework
SystemConfiguration.framework
CoreGraphics.framework
Foundation.framework
UIKit.framework
Security.framework
libz.tbd(Xcode 7 以下版本是 libz.dylib)
AdSupport.framework(获取 IDFA 需要;如果不使用 IDFA,请不要添加)
UserNotifications.framework(Xcode 8 及以上)
libresolv.tbd(JPush 2.2.0 及以上版本需要,Xcode 7 以下版本是 libresolv.dylib)

至此集成完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值