在ReactNative中使用CodePush 热更新

ReactNative 热更新

使用 react-native-update,这个库是在 RN 中文网上推广的。鉴于测试、使用改库,我们还可以自建 codepush服务,不过这个后面会详细讲到,官网地址。
基础环境

1. 全局安装 update-cli

先全局安装命令行工具,每台电脑只用装一次

npm i -g react-native-update-cli

2. 项目初始化

然后在项目目录中安装热更新模块

0.71 及以上版本使用最新版本如下

npm i react-native-update

项目配置

IOS

找到 ios>AppDelegate.m 文件

// 修改以下内容

#import "RCTPushy.h"

- (NSURL *)getBundleURL
{
   
    #if DEBUG
    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
// 这里改为 RCTPushy bundleURL, 热更新
//  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
return [RCTPushy bundleURL];
    #endif
}

@end
ANDROID

MainApplication 中增加如下代码(如果是混编原生的项目或其他原因没有使用 ReactApplication,请使用此 api 集成):

● Kotlin 版本
// … 其它代码

// ↓↓↓请注意不要少了这句import
import cn.reactnative.modules.update.UpdateContext;
// ↑↑↑

class MainApplication : Application(), ReactApplication {
   
 
  override val reactNativeHost: ReactNativeHost =
      object : DefaultReactNativeHost(this) {
   
 
        // ↓↓↓将下面这一段添加到 DefaultReactNativeHost 内部!
        override fun getJSBundleFile(): String? {
   
          return UpdateContext.getBundleUrl(this@MainApplication)
        }
        // ↑↑↑
 
        // ...其他代码
      }
}

● Java版本

// ... 其它代码
 
// ↓↓↓请注意不要少了这句import
import cn.reactnative.modules.update.UpdateContext;
// ↑↑↑
 
public class MainApplication extends Application implements ReactApplication {
   
 
  private final ReactNativeHost mReactNativeHost =
    // 老版本 RN 这里可能是 new ReactNativeHost(this)
    new DefaultReactNativeHost(this) {
   
 
    // ↓↓↓将下面这一段添加到 DefaultReactNativeHost 内部!
    @Override
    
  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 APP center 配置 React Native Pushcode,需要按照以下步骤进行操作: 1. 在 APP center 创建一个新项目,并将其与你的 GitHub 或 Bitbucket 仓库关联。 2. 在你的 React Native 项目安装 App Center Push SDK。可以使用以下命令: ``` npm install appcenter-push --save ``` 3. 在项目添加以下代码,以初始化 App Center Push SDK: ```javascript import AppCenterPush from 'appcenter-push'; componentDidMount() { AppCenterPush.setListener({ onPushNotificationReceived: function (pushNotification) { console.log('Push notification received:' + pushNotification.message); } }); AppCenterPush.getInitialNotification().then(notification => { console.log('Initial notification:' + notification); }); } ``` 4. 在 App Center 创建推送通知。可以通过以下步骤完成: - 在 App Center 单击“推送”选项卡。 - 点击“新建”按钮。 - 输入通知的标题和正文。 - 选择要接收通知的应用程序。 - 选择要接收通知的设备。 - 点击“发送”按钮。 5. 在应用测试推送通知。可以使用以下命令向应用发送推送通知: ``` curl -X POST \ -H "Content-Type: application/json" \ -H "X-API-Token: YOUR_API_TOKEN" \ -d '{ "notification_content": { "name": "test notification", "title": "test notification title", "body": "test notification body" }, "notification_target": { "type": "devices_target", "devices": ["YOUR_DEVICE_ID"] } }' \ https://api.appcenter.ms/v0.1/apps/YOUR_ORGANIZATION/YOUR_APP/push/notifications ``` 这将向设备发送一条测试通知。在应用接收到通知后,可以在控制台查看通知的日志信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执念1012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值