| @@ -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' | |||
| }, | |||
| }); | |||