日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(笔记) RN React Native 热更新(react-native-code-push) AppCenter

發(fā)布時(shí)間:2024/1/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (笔记) RN React Native 热更新(react-native-code-push) AppCenter 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

蘋(píng)果App允許使用熱更新Apple's developer agreement, 為了不影響用戶(hù)體驗(yàn),規(guī)定必須使用靜默更新。 Google Play不能使用靜默更新,必須彈框告知用戶(hù)App有更新。中國(guó)的android市場(chǎng)必須采用靜默更新(如果彈框提示,App會(huì)被“請(qǐng)上傳最新版本的二進(jìn)制應(yīng)用包”原因駁回)。?

自備梯子,國(guó)內(nèi)App可自配下載地址或者參考 rn中文網(wǎng)

?code push已經(jīng)遷移到 App Center上

?

基本步驟就是 配置 打包 發(fā)布新版本

?

參考

官方文檔 安裝 發(fā)布

https://docs.microsoft.com/en-us/appcenter/distribution/codepush/react-native#releasing-updates

https://www.jianshu.com/p/84307d3aa824? ? ? //這個(gè)比較詳細(xì)

?

?

? ?安裝App Center CLI

npm install -g appcenter-cli

?

?

添加項(xiàng)目

appcenter apps create -d AwesomeProject -o Android -p React-Native

檢測(cè)是否添加成功

appcenter apps list

部署 (獲取key

appcenter codepush deployment add -a slf1501-163.com/AwesomeProject Staging

appcenter codepush deployment add -a slf1501-163.com/AwesomeProject Production

?查詢(xún)key

appcenter codepush deployment list -a ?slf1501-163.com/AwesomeProject ?-k

?

?記得把MainApplication里的key替換

?

@Override

protectedList<ReactPackage>getPackages(){

returnArrays.<ReactPackage>asList(

newMainReactPackage(),

newCodePush("CTjphNv3zzJCF2wbVQfwaIhcNWE9HJ1Wh1Zp4",getApplicationContext(),BuildConfig.DEBUG)

);

}

?

入口文件

import {AppRegistry} from 'react-native'; import CodePush from "react-native-code-push"; // 靜默方式,app每次啟動(dòng)的時(shí)候,都檢測(cè)一下更新 'ON_APP_RESUME' // const codePushOptions = { checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME };// 手動(dòng)方式接收更新的方式 const codePushOptions = { checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME }; import _App from './App'; const App = CodePush(codePushOptions)(_App); import {name as appName} from './app.json'; AppRegistry.registerComponent(appName, () => App);

或者

import React, { Component } from 'react'; import {Platform,StyleSheet,Text,View } from 'react-native';import CodePush from "react-native-code-push"; // 引入code-pushlet codePushOptions = {//設(shè)置檢查更新的頻率//ON_APP_RESUME APP恢復(fù)到前臺(tái)的時(shí)候//ON_APP_START APP開(kāi)啟的時(shí)候//MANUAL 手動(dòng)檢查checkFrequency : CodePush.CheckFrequency.ON_APP_RESUME };const instructions = Platform.select({ios: 'Press Cmd+R to reload,\n' +'Cmd+D or shake for dev menu',android: 'Double tap R on your keyboard to reload,\n' +'Shake or press menu button for dev menu', });type Props = {};class App extends Component<Props> {//如果有更新的提示syncImmediate() {CodePush.sync( {//安裝模式//ON_NEXT_RESUME 下次恢復(fù)到前臺(tái)時(shí)//ON_NEXT_RESTART 下一次重啟時(shí)//IMMEDIATE 馬上更新installMode : CodePush.InstallMode.IMMEDIATE ,//對(duì)話框updateDialog : {//是否顯示更新描述appendReleaseDescription : true ,//更新描述的前綴。 默認(rèn)為"Description"descriptionPrefix : "更新內(nèi)容:" ,//強(qiáng)制更新按鈕文字,默認(rèn)為continuemandatoryContinueButtonLabel : "立即更新" ,//強(qiáng)制更新時(shí)的信息. 默認(rèn)為"An update is available that must be installed."mandatoryUpdateMessage : "必須更新后才能使用" ,//非強(qiáng)制更新時(shí),按鈕文字,默認(rèn)為"ignore"optionalIgnoreButtonLabel : '稍后' ,//非強(qiáng)制更新時(shí),確認(rèn)按鈕文字. 默認(rèn)為"Install"optionalInstallButtonLabel : '后臺(tái)更新' ,//非強(qiáng)制更新時(shí),檢查到更新的消息文本optionalUpdateMessage : '有新版本了,是否更新?' ,//Alert窗口的標(biāo)題title : '更新提示'} ,} ,);}componentWillMount() {CodePush.disallowRestart();//禁止重啟this.syncImmediate(); //開(kāi)始檢查更新}componentDidMount() {CodePush.allowRestart();//在加載完了,允許重啟}render() {return (<View style={styles.container}><Text style={styles.welcome}>Welcome to React Native!</Text><Text style={styles.instructions}>To get started, edit App.js</Text><Text style={styles.instructions}>{instructions}</Text><Text style={styles.instructions}>這是更新的版本</Text></View>);} }// 這一行必須要寫(xiě) App = CodePush(codePushOptions)(App)export default Appconst styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',backgroundColor: '#F5FCFF',},welcome: {fontSize: 20,textAlign: 'center',margin: 10,},instructions: {textAlign: 'center',color: '#333333',marginBottom: 5,}, })

?

打包 apk? 安裝以后 更改樣式 發(fā)布

appcenter codepush release-react -a slf1501-163.com/splashExample-android?? ?

-m true? 強(qiáng)制更新

?

?

總結(jié)

以上是生活随笔為你收集整理的(笔记) RN React Native 热更新(react-native-code-push) AppCenter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区三区麻豆 | 国产91精品久久久 | 精品免费在线视频 | 日韩三区四区 | 国产亚洲欧美日韩精品 | 99精品福利| 久久夜色网 | 糖心logo在线观看 | 91青青草视频 | 成人免费毛片嘿嘿连载 | 秋霞网一区二区三区 | tube国产麻豆| 高跟鞋av | 久久色av | 妞干网精品 | 国产精品s | 色一情一交一乱一区二区三区 | 久热欧美 | 久久99深爱久久99精品 | 17草在线 | 人妻 日韩精品 中文字幕 | 亚洲美女久久 | 特级黄毛片 | 午夜a级片 | 亚洲福利久久 | 婷婷深爱网 | 精品国产麻豆 | 久久精品视频网站 | 麻豆短视频 | 欧美在线视频免费观看 | 99视频在线 | 国产做a| 日韩制服诱惑 | 在线观看视频一区 | 欧美乱妇狂野欧美在线视频 | 国产精品福利电影 | 三浦惠理子aⅴ一二三区 | 午夜视频一区二区三区 | 国产不卡一区二区视频 | 精品午夜一区二区 | 精品国产综合区久久久久久 | 午夜电影天堂 | 国产又粗又猛又爽又黄的 | 黄色成人av在线 | 久久天堂网 | 噼里啪啦免费高清看 | 亚洲狠狠丁香婷婷综合久久久 | 韩国视频一区二区三区 | 九九九网站 | 亚洲AV成人午夜无码精品久久 | 黄色大片网址 | 女人久久久久 | 一边摸一边做爽的视频17国产 | 欧美亚洲不卡 | 欧美国产高清 | 超碰人人人人人人人 | 青青青国产 | 国产免费一区二区三区在线播放 | 色美av | 少妇无套高潮一二三区 | 国产精品日韩无码 | 亚洲一区a | 国产五十路 | 色七七网站 | 精品一区二区无码 | 亚洲AV成人无码电影在线观看 | 久久综合久久久久 | 96国产视频 | 97影音| 欧美日韩久久精品 | 91偷拍富婆spa盗摄在线 | 99精品久久99久久久久 | 亚洲高清影院 | 欧美aaa视频 | 黄色大片毛片 | 久久人妻少妇嫩草av无码专区 | 在线免费观看黄网 | 蜜桃成人免费视频 | 日日射天天干 | 国产精品视频一区二区三区在3 | 久久影业| 午夜电影你懂的 | 亚洲精品网站在线观看 | 久久久a级片 | 久久综合久 | 亚洲人成电影在线 | 欧美日韩一区二区在线视频 | 久久久久久久久久久国产 | 波多野结衣av中文字幕 | 黄网免费视频 | 免费一级a毛片夜夜看 | 亚洲成人精品一区二区三区 | 720url在线观看免费版 | 精品国产乱码久久久久久闺蜜 | 牛牛电影国产一区二区 | se在线观看 | 九色蝌蚪视频 | 亚洲视频在线观看视频 | 国产吞精囗交久久久 |