CodePush 集成详细步骤

本文详细介绍了如何在React Native项目中集成CodePush热更新服务,包括Node.js环境配置、iOS和Android平台的具体集成步骤及关键代码示例。

1.RN集成

1)npm install --save react-native-code-push


管理 CodePush 账号需要通过 NodeJS-based CLI

只需要在终端输入 npm install -g code-push-cli,就可以安装了。

安装完毕后,输入 code-push -v查看版本


2)在首页面

import CodePush from "react-native-code-push";


ComponentDidMount():

 i//CodePush

if (AppDef.debug) {


    CodePush.sync({

        updateDialog: {

            mandatoryContinueButtonLabel: '更新',

            mandatoryUpdateMessage: '有新版本了,请您及时更新',

            optionalIgnoreButtonLabel: '稍后',

            optionalInstallButtonLabel: '后台更新',

            optionalUpdateMessage: '有新版本了,是否更新?',

            title: '更新提示'

        },

        installMode: CodePush.InstallMode.IMMEDIATE

    });

} else {

    CodePush.sync();

}

CodePush.allowRestart();//在加载完了可以允许重启


componentWillUnmount():

    //code push

     CodePush.disallowRestart();//页面加载的禁止重启,在加载完了可以允许重启


2.iOS集成

1node_modules/react-native-code-push/ios/CodePush.xcodeproj 拖到工程里

添加依赖,添加libCodePush.alibz.tbd

2AppDelegate.m:

#import <CodePush/CodePush.h>

jsCodeLocation = [CodePush bundleURL];

3plist里添加CodePushDeploymentKey

4Header Search Paths:

$(SRCROOT)/../node_modules/react-native-code-push recursive


3.android集成

1android/settings.gradle里添加:

include ':app', ':react-native-code-push'

project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')

2android/app/build.gradle里添加:

apply from: "../../node_modules/react-native/react.gradle"

apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"


compile project(':react-native-code-push')


DeploymentKey:

release {
    resValue "string", "CODEPUSH_KEY", "Product key"
}
debug {
    resValue "string", "CODEPUSH_KEY", "Staging key"
}

3MainApplication onCreate:

public void onCreate() {
    CodePush.setReactInstanceHolder((ReactInstanceHolder)mReactNativeHost);
    super.onCreate();


4MyReactNativeHost实现接口ReactInstanceHolder,并添加:

@Override
protected String getJSBundleFile() {
    return CodePush.getJSBundleFile();
}


@Override
protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new FeePieViewPackage(),
            new BaiduMapViewPackage(),
            new CarRentPackage(),
            new StoragePackage(),
            new NetworkPackage(),
            new PayPackage(),
            new MyWebViewPackage(),
            new CodePush(getResources().getString(R.string.CODEPUSH_KEY), mContext, BuildConfig.DEBUG));
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值