Преглед изворни кода

[升级][新增]:运行后自动升级

tags/jenkins-front-end-screenad-58^0
hupeng пре 6 година
родитељ
комит
efb7695adc
1 измењених фајлова са 59 додато и 64 уклоњено
  1. +59
    -64
      App.js

+ 59
- 64
App.js Прегледај датотеку

@@ -1,13 +1,10 @@

import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View,
Image,
Dimensions,
TouchableOpacity,
ImageBackground,
} from 'react-native';

@@ -19,9 +16,6 @@ import DeviceInfo from "react-native-device-info";

import * as Animatable from 'react-native-animatable';

// 取得屏幕的宽高Dimensions
const { width, height } = Dimensions.get('window');

contentItemDefault = {
coverImg:'',
qrcode:[],
@@ -45,23 +39,21 @@ export default class MyPage extends Component {
constructor(props) {
super(props);
this.state = {
baseInfo: baseInfoDefault,

adDataList:[],

contentItem1:contentItemDefault,

contentItem2:contentItemDefault,

contentItem3:contentItemDefault,

syncMessage: "INIT" ,
progress: {
receivedBytes:0,
totalBytes:0
},
macAddress: "NULL",

text:'',
restartAllowed: true ,
syncMessage: "syncMessage" ,
progress: false,
macAddress: "NULL"
versionInfo:'UNKNOWN'
};
DeviceInfo.getMACAddress().then(mac=>{this.setState({macAddress:mac})})
DeviceInfo.getIPAddress().then(mac=>{this.setState({macAddress:mac})})
@@ -102,45 +94,7 @@ codePushStatusDidChange(syncStatus) {
this.setState({ progress });
}

// 允许重启后更新
toggleAllowRestart() {
this.state.restartAllowed
? CodePush.disallowRestart()
: CodePush.allowRestart();

this.setState({ restartAllowed: !this.state.restartAllowed });
}

// 获取更新数据
getUpdateMetadata() {
CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING)
.then((metadata: LocalPackage) => {
this.setState({ syncMessage: metadata ? JSON.stringify(metadata) : "Running binary version", progress: false });
}, (error: any) => {
this.setState({ syncMessage: "Error: " + error, progress: false });
});
}

/** Update is downloaded silently, and applied on restart (recommended) 自动更新,一键操作 */
sync() {
CodePush.sync(
{},
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}

/** Update pops a confirmation dialog, and then immediately reboots the app 一键更新,加入的配置项 */
syncImmediate() {
CodePush.sync(
{ installMode: CodePush.InstallMode.IMMEDIATE, updateDialog: true },
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);
}


getAdDataList() {
getAdDataList() {
HttpUtils.get('https://mall.youlane.cn/api/wxDeviceScreenAd/list?deviceId=11%3AAA%3A33%3ABB%3A44&pageNum=1&pageSize=5')
.then(result => {
this.setState({
@@ -150,32 +104,56 @@ getAdDataList() {
contentItem1 : this.state.adDataList[0]});
})
.catch(error => console.error(error))
}
}

getBaseInfo() {
getBaseInfo() {
HttpUtils.get('https://mall.youlane.cn/api/wxDeviceScreenAd/info?deviceId=11%3AAA%3A33%3ABB%3A44')
.then(result => {
this.setState({
baseInfo:result.data});
})
.catch(error => console.error(error))
}
}


componentDidMount() {
CodePush.allowRestart();
CodePush.sync(
{ installMode: CodePush.InstallMode.IMMEDIATE,
dialog:{} },
this.codePushStatusDidChange.bind(this),
this.codePushDownloadDidProgress.bind(this)
);

CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING)
.then((metadata: LocalPackage) => {
this.setState({ versionInfo: metadata ? metadata.appVersion + "-" + metadata.label : "Unknown"});
}, (error: any) => {
this.setState({ versionInfo: "Unknown"});
});

this.getBaseInfo()
this.getAdDataList()

}


render() {
let progressView;

if (this.state.progress) {
progressView = (
<Text>{this.state.progress.receivedBytes} of {this.state.progress.totalBytes} bytes received</Text>
if (this.state.progress.totalBytes > 0)
return (
<Text style={styles.updatePage}>{this.state.syncMessage}{'\n'}
{this.state.progress.receivedBytes} of {this.state.progress.totalBytes} bytes received{'\n'}
{this.state.text}
</Text>
);
return (
<Text style={styles.updatePage}>{this.state.syncMessage}{'\n'}
{this.state.text}
</Text>
);
}
}

return (
<ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}>
@@ -303,7 +281,7 @@ render() {
</View>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp, cache: 'force-cache'}} resizeMode='center' style={styles.bottomQrcode1} />
<Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp, cache: 'force-cache'}} resizeMode='center' style={styles.bottomQrcode2} />
<Text style={styles.bottomPlacehold}>{this.state.text}</Text>
<Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text>
</View>

</ImageBackground>
@@ -313,6 +291,18 @@ render() {
}

const styles = StyleSheet.create({
updatePage:{
flex: 2,
width:'100%',
height:'100%',
backgroundColor:'yellow',
textAlign :'center',
textAlignVertical:'center',
fontSize: 24,
color: 'green'
},



//layer background
background:{
@@ -415,7 +405,11 @@ render() {
flex: 8,
width:'100%',
height:'100%',
backgroundColor:'transparent'
backgroundColor:'transparent',
textAlign :'right',
textAlignVertical:'bottom',
fontSize: 10,
color : 'gray'
},

//layer content item
@@ -591,4 +585,5 @@ render() {
textDecorationLine: 'line-through',
color : 'gray'
},

});

Loading…
Откажи
Сачувај