react-native 使用codepush靜默熱更新

新版的codepush已經集成到微軟的 appcenter。
codepush有兩種發佈模式 一種 Staging 一種 Production,這裏以Staging 演示
react-native版本:0.57.0
appcenter地址 :appcenterreact

須要appcenter的帳號,若是你有了微軟、github 、google、facebook的帳號,能夠直接登陸。若是沒有那須要你註冊上述幾個的任何一個帳號。

登陸成功後,建立APP,這裏以安卓爲例

圖片描述
選擇 add new app
圖片描述
填寫完成 add new app
圖片描述
建立
圖片描述android

建立成功
圖片描述git

開始安裝一些須要的庫github

appcenter的客戶端npm

npm install -g appcenter-cli

在你的react-native項目根目錄執行,安裝codepush的庫react-native

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

由於codepush裏面包含有native代碼,安裝完成後執行瀏覽器

react-native link react-native-code-push

安裝完畢後,登陸appcenter,打開終端app

appcenter login

這個會打開瀏覽器,瀏覽器裏面有個token,複製到終端回車便可登陸成功ide

查看 Deployment Key
終端執行函數

appcenter codepush deployment list -a <這裏的參數就是上面圖片中讓記住-a後面的參數> -k

執行完畢後,會在終端輸出
兩個key name分別是 Staging、Production。這裏咱們複製Staging的key。

切換到 android的代碼 。打開

// 1. 導入包
import com.microsoft.codepush.react.CodePush;

public class MainApplication extends Application implements ReactApplication {

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        ...
        //2.這裏執行link的時候會自動生成
        @Override
        protected String getJSBundleFile() {
            return CodePush.getJSBundleFile();
        }

        @Override
        protected List<ReactPackage> getPackages() {
            // 3.用剛纔上面複製的key替換下面的 deployment-key-here
            return Arrays.<ReactPackage>asList(
                new MainReactPackage(),
                new CodePush("deployment-key-here", MainApplication.this, BuildConfig.DEBUG)
            );
        }
    };
}

App.js代碼

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

class MyApp extends Component {
}
//使用codepush函數包裝你的defaultApp。
MyApp = codePush(MyApp);

發佈js到appcenter

appcenter codepush release-react -a <這裏的參數就是上面圖片中讓記住-a後面的參數> -d Staging

發佈成功後,在appcenter網頁版裏面能夠看到。

到這裏配置都已經ok了。 打包apk,這時候app就具備了熱更新的能力, 每次修改好,使用 appcenter發佈 app就會按照規則更新。默認的規則 app在啓動的時候會靜默檢查更新,再下次app重啓的時候,會靜默安裝更新。

相關文章
相關標籤/搜索