ReactNative使用Pushy热更新

安装和配置

安装

# 先全局安装命令行工具,每台电脑只用装一次
npm i -g react-native-update-cli
 
# 然后在项目目录中安装热更新模块
npm i react-native-update

# 然后进入ios目录安装iOS模块
cd ios && pod install
 

配置Bundle URL

iOS

AppDelegate.mmAppDelegate.m增加如下代码

// ... 其它代码
#import "AppDelegate.h"
 
#import "RCTPushy.h"  // <-- import头文件,注意要放到if条件外面
 
// 可能项目里有一些条件编译语句,例如有些版本RN自带的flipper
// #if DEBUG
// 注意**不要**在这里面引入"RCTPushy.h"
// #import <FlipperKit/FlipperClient.h>
// ...
// #endif
 
 
// 修改sourceURLForBridge方法
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  // 原先DEBUG这里的写法不作修改(所以DEBUG模式下不可热更新)
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
  return [RCTPushy bundleURL];  // <--  把这里非DEBUG的情况替换为热更新bundle
#endif
} 
Android

MainApplication中增加如下代码

// ... 其它代码
 
// ↓↓↓请注意不要少了这句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)
        }
        // ↑↑↑
 
        // ...其他代码
      }
}

禁用 android 的 crunch 优化

android 会在生成 apk 时自动对 png 图片进行压缩,此操作既耗时又影响增量补丁的生成。为了保证补丁能正常生成,您需要在android/app/build.gradle中关闭此操作:

...
android {
    ...
    signingConfigs { ... }
    buildTypes {
        release {
            ...
            // 添加下面这行以禁用crunch
            crunchPngs false
        }
    }
}
...

登录和创建应用

注册帐号后,在项目根目录下运行命令

$ pushy login
email: <输入你的注册邮箱>
password: <输入你的密码>

发布原生基准版本

iOS
$ pushy uploadIpa <ipa后缀文件>
Android
$ pushy uploadApk android/app/build/outputs/apk/release/app-release.apk

发布热更新版本

尝试修改一行代码(文本将版本1修改为版本2),然后pushy bundle --platform <ios|android>命令来省城新的热更新版本

$ pushy bundle --platform android
Bundling with React Native version:  0.22.2
<各种进度输出>
Bundled saved to: build/output/android.1459850548545.ppk
Would you like to publish it?(Y/N)

参考链接

Pushy发布流程

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native是一个开源的移动应用程序框架,可以使用JavaScript和React来开发跨平台的移动应用程序。而Pushy是一个用于在React Native中处理推送通知的第三方库。混编指的是同时使用React NativePushy来开发应用程序。 在React Native使用Pushy可以实现以下功能: 1. 接收推送通知:Pushy提供了一个统一的接口,可以在应用程序中接收来自各种推送通知服务的通知,例如Firebase Cloud Messaging(FCM)和苹果推送通知服务(APNs)。 2. 处理推送通知:开发人员可以使用Pushy提供的API来处理接收到的推送通知,例如显示通知、处理点击事件等。 3. 自定义推送通知:Pushy允许开发人员自定义推送通知的样式和行为,以适应应用程序的需求。 4. 设备注册和解注册:Pushy提供了API用于设备的注册和解注册,以确保设备能够正确地接收推送通知。 混编React NativePushy的步骤如下: 1. 在React Native项目中安装Pushy库。 2. 在React Native代码中引入Pushy库,并使用Pushy提供的API来处理推送通知。 3. 在应用程序的入口文件中初始化Pushy,并注册设备以接收推送通知。 4. 在相应的平台的配置文件中配置推送通知服务(例如FCM和APNs)。 5. 使用Pushy提供的API测试和调试推送通知功能。 6. 构建和部署应用程序,确保推送通知功能正常工作。 通过混编React NativePushy,开发人员可以在应用程序中实现推送通知功能,从而提升用户体验和增加应用功能。无论是Android还是iOS平台,都可以使用Pushy来方便地处理推送通知。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值