| @@ -22,26 +22,6 @@ import * as Animatable from 'react-native-animatable'; | |||||
| import {CachedImage,ImageCache} from "react-native-img-cache"; | import {CachedImage,ImageCache} from "react-native-img-cache"; | ||||
| var testMac = 'FF:FF:FF:FF:FF:FF' | var testMac = 'FF:FF:FF:FF:FF:FF' | ||||
| var contentItemDefault = { | |||||
| type:0, | |||||
| subType:0, | |||||
| qrcode:[], | |||||
| target:{ | |||||
| coverImg:'', | |||||
| title:'', | |||||
| subTitle:'', | |||||
| priceStr:'', | |||||
| salePriceStr:'', | |||||
| remark:'', | |||||
| } | |||||
| } | |||||
| var baseInfoDefault = { | |||||
| imgUrlH:'', | |||||
| imgQrcodeWeapp:'', | |||||
| imgQrcodeWemp:'' | |||||
| } | |||||
| var curAdIndex = 0; | var curAdIndex = 0; | ||||
| var errorMsg = { | var errorMsg = { | ||||
| ERR_MAC_GET:'设备编号获取错误', | ERR_MAC_GET:'设备编号获取错误', | ||||
| @@ -94,11 +74,20 @@ var heartConfig = { | |||||
| var requestFailedCount = 0; | var requestFailedCount = 0; | ||||
| var versionInfo = ''; | var versionInfo = ''; | ||||
| let codePushOptions = { | |||||
| //设置检查更新的频率 | |||||
| //ON_APP_RESUME APP恢复到前台的时候 | |||||
| //ON_APP_START APP开启的时候 | |||||
| //MANUAL 手动检查 | |||||
| checkFrequency : CodePush.CheckFrequency.ON_APP_START | |||||
| }; | |||||
| export default class MyPage extends Component { | export default class MyPage extends Component { | ||||
| constructor(props) { | constructor(props) { | ||||
| super(props); | super(props); | ||||
| this.state = { | this.state = { | ||||
| baseInfo: baseInfoDefault, | |||||
| baseInfo: null, | |||||
| contentItem0:null, | contentItem0:null, | ||||
| contentItem1:null, | contentItem1:null, | ||||
| contentItem2:null, | contentItem2:null, | ||||
| @@ -118,23 +107,24 @@ export default class MyPage extends Component { | |||||
| //更新函数 | //更新函数 | ||||
| async codePushUpdate() { | async codePushUpdate() { | ||||
| CodePush.allowRestart(); | |||||
| CodePush.sync( | |||||
| { mandatoryInstallMode: CodePush.InstallMode.IMMEDIATE, | |||||
| installMode: CodePush.InstallMode.IMMEDIATE}, | |||||
| this.codePushStatusDidChange.bind(this), | |||||
| this.codePushDownloadDidProgress.bind(this) | |||||
| ); | |||||
| CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING) | |||||
| .then((metadata: LocalPackage) => { | |||||
| this.setState({ versionInfo: metadata ? 'b'+NativeModules.BuildConfig.versionCode+"-" + metadata.label : 'b'+ NativeModules.BuildConfig.versionCode}); | |||||
| versionInfo = this.state.versionInfo; | |||||
| }, (error: any) => { | |||||
| this.setState({ versionInfo: "Unknown"}); | |||||
| versionInfo = this.state.versionInfo; | |||||
| }); | |||||
| await CodePush.getUpdateMetadata(CodePush.UpdateState.RUNNING) | |||||
| .then((metadata: LocalPackage) => { | |||||
| this.setState({ versionInfo: metadata ? 'b'+NativeModules.BuildConfig.versionCode+"-" + metadata.label : 'b'+ NativeModules.BuildConfig.versionCode}); | |||||
| versionInfo = this.state.versionInfo; | |||||
| }, (error: any) => { | |||||
| this.setState({ versionInfo: "Unknown"}); | |||||
| versionInfo = this.state.versionInfo; | |||||
| }); | |||||
| await CodePush.disallowRestart(); | |||||
| await CodePush.sync( | |||||
| { mandatoryInstallMode: CodePush.InstallMode.IMMEDIATE, | |||||
| installMode: CodePush.InstallMode.IMMEDIATE}, | |||||
| this.codePushStatusDidChange.bind(this), | |||||
| this.codePushDownloadDidProgress.bind(this) | |||||
| ); | |||||
| await CodePush.allowRestart(); | |||||
| } | } | ||||
| @@ -196,7 +186,7 @@ codePushStatusDidChange(syncStatus) { | |||||
| return true; | return true; | ||||
| } | } | ||||
| async hbRequest() { | |||||
| hbRequest() { | |||||
| return HttpUtils.post(NativeModules.BuildConfig.apiHost | return HttpUtils.post(NativeModules.BuildConfig.apiHost | ||||
| + 'api/wxDeviceScreenAd/heartbeat?deviceId=' | + 'api/wxDeviceScreenAd/heartbeat?deviceId=' | ||||
| + encodeURIComponent(this.state.macAddress), | + encodeURIComponent(this.state.macAddress), | ||||
| @@ -245,7 +235,7 @@ codePushStatusDidChange(syncStatus) { | |||||
| this.setState({errorMessage : errMsg}); | this.setState({errorMessage : errMsg}); | ||||
| } | } | ||||
| async getAdDataList(first) { | |||||
| getAdDataList(first) { | |||||
| HttpUtils.get(NativeModules.BuildConfig.apiHost | HttpUtils.get(NativeModules.BuildConfig.apiHost | ||||
| + 'api/wxDeviceScreenAd/list?deviceId=' | + 'api/wxDeviceScreenAd/list?deviceId=' | ||||
| + encodeURIComponent(this.state.macAddress) | + encodeURIComponent(this.state.macAddress) | ||||
| @@ -254,7 +244,6 @@ codePushStatusDidChange(syncStatus) { | |||||
| if (result.code != 200) { | if (result.code != 200) { | ||||
| this.showErrMsg(result.message+'\n'+this.state.macAddress); | this.showErrMsg(result.message+'\n'+this.state.macAddress); | ||||
| } else if (result.data.list) { | } else if (result.data.list) { | ||||
| ImageCache.get().clear(); | |||||
| adDataList = result.data.list; | adDataList = result.data.list; | ||||
| if (this.updateContent()) { | if (this.updateContent()) { | ||||
| this.setState({contentDisplayStatus: true}) | this.setState({contentDisplayStatus: true}) | ||||
| @@ -275,7 +264,7 @@ codePushStatusDidChange(syncStatus) { | |||||
| } | } | ||||
| }) | }) | ||||
| } | } | ||||
| async getBaseInfo() { | |||||
| getBaseInfo() { | |||||
| HttpUtils.get(NativeModules.BuildConfig.apiHost | HttpUtils.get(NativeModules.BuildConfig.apiHost | ||||
| + 'api/wxDeviceScreenAd/info?deviceId=' | + 'api/wxDeviceScreenAd/info?deviceId=' | ||||
| + encodeURIComponent(this.state.macAddress)) | + encodeURIComponent(this.state.macAddress)) | ||||
| @@ -295,7 +284,7 @@ codePushStatusDidChange(syncStatus) { | |||||
| } | } | ||||
| componentDidMount() { | componentDidMount() { | ||||
| await this.codePushUpdate(); | |||||
| this.codePushUpdate(); | |||||
| DeviceInfo.getMACAddress().then((mac)=>{ | DeviceInfo.getMACAddress().then((mac)=>{ | ||||
| if (mac=='' || mac==null ) { | if (mac=='' || mac==null ) { | ||||
| @@ -314,28 +303,28 @@ componentDidMount() { | |||||
| }) | }) | ||||
| } | } | ||||
| componentDidUnmount(){ | |||||
| componentWillUnmount(){ | |||||
| if (timer) | if (timer) | ||||
| clearTimeout(timer) | clearTimeout(timer) | ||||
| } | } | ||||
| routine() { | |||||
| async routine() { | |||||
| hbRequestCount -=1; | hbRequestCount -=1; | ||||
| getAdDataCount -=1; | getAdDataCount -=1; | ||||
| pageChangeCount -=1; | pageChangeCount -=1; | ||||
| try { | try { | ||||
| if (getAdDataCount<=0) { | if (getAdDataCount<=0) { | ||||
| await this.getAdDataList(false) | |||||
| this.getAdDataList(false) | |||||
| getAdDataCount = heartConfig.dataRefreshInterval | getAdDataCount = heartConfig.dataRefreshInterval | ||||
| } else if (hbRequestCount<=0) { | } else if (hbRequestCount<=0) { | ||||
| await this.hbRequest() | |||||
| this.hbRequest() | |||||
| hbRequestCount = heartConfig.heartbeatInterval | hbRequestCount = heartConfig.heartbeatInterval | ||||
| } | } | ||||
| if (pageChangeCount <= 0) { //页面切换间隔 | if (pageChangeCount <= 0) { //页面切换间隔 | ||||
| if (this.state.contentDisplayStatus) { | |||||
| if (this.state.contentDisplayStatus && this.state.baseInfo) { | |||||
| this.setState({ contentDisplayStatus: false}) | this.setState({ contentDisplayStatus: false}) | ||||
| if (this.updateContent()) { | if (this.updateContent()) { | ||||
| this.setState({ contentDisplayStatus: true}) | this.setState({ contentDisplayStatus: true}) | ||||
| @@ -343,6 +332,8 @@ routine() { | |||||
| } else { | } else { | ||||
| await this.getBaseInfo() | await this.getBaseInfo() | ||||
| await this.getAdDataList(true) | await this.getAdDataList(true) | ||||
| getAdDataCount = heartConfig.dataRefreshInterval | |||||
| hbRequestCount = heartConfig.heartbeatInterval | |||||
| } | } | ||||
| pageChangeCount = heartConfig.pageChangeInterval | pageChangeCount = heartConfig.pageChangeInterval | ||||
| } | } | ||||
| @@ -356,9 +347,9 @@ routine() { | |||||
| } | } | ||||
| startAd() { | startAd() { | ||||
| hbRequestCount = heartConfig.heartbeatInterval; | |||||
| getAdDataCount = heartConfig.dataRefreshInterval; | |||||
| pageChangeCount = heartConfig.pageChangeInterval; | |||||
| hbRequestCount = 0; | |||||
| getAdDataCount = 0; | |||||
| pageChangeCount = 0; | |||||
| this.routine(); | this.routine(); | ||||
| } | } | ||||
| @@ -473,6 +464,7 @@ getUpdateView() { | |||||
| } | } | ||||
| getAdView(){ | getAdView(){ | ||||
| if (this.state.baseInfo) { | |||||
| return ( | return ( | ||||
| <ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}> | <ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}> | ||||
| {/* 头部title二维码开始 */} | {/* 头部title二维码开始 */} | ||||
| @@ -482,7 +474,7 @@ getAdView(){ | |||||
| </View> | </View> | ||||
| <ImageBackground source={require('./image/title-qrcode.png') } resizeMode='center' style={styles.titleQrcodeBonder} > | <ImageBackground source={require('./image/title-qrcode.png') } resizeMode='center' style={styles.titleQrcodeBonder} > | ||||
| <View style={styles.titleQrcodePlacehold}></View> | <View style={styles.titleQrcodePlacehold}></View> | ||||
| <CachedImage source={{uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.titleQrcode} /> | |||||
| <Image source={{uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.titleQrcode} /> | |||||
| <View style={styles.titleQrcodePlacehold}></View> | <View style={styles.titleQrcodePlacehold}></View> | ||||
| </ImageBackground> | </ImageBackground> | ||||
| </View> | </View> | ||||
| @@ -491,20 +483,41 @@ getAdView(){ | |||||
| {/* 底部商场信息展示开始 */} | {/* 底部商场信息展示开始 */} | ||||
| <View style={styles.bottom}> | <View style={styles.bottom}> | ||||
| <View style={styles.bottomLogoBackground}> | <View style={styles.bottomLogoBackground}> | ||||
| <CachedImage source={{ uri: this.state.baseInfo.imgUrlH}} resizeMode='contain' style={styles.bottomLogo} /> | |||||
| <Image source={{ uri: this.state.baseInfo.imgUrlH}} resizeMode='contain' style={styles.bottomLogo} /> | |||||
| </View> | </View> | ||||
| <View style={styles.bottomQrcode1Background}> | <View style={styles.bottomQrcode1Background}> | ||||
| <CachedImage source={{ uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.bottomQrcode1} /> | |||||
| <Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.bottomQrcode1} /> | |||||
| <Text style={styles.bottomQrcode1Str}>小程序</Text> | <Text style={styles.bottomQrcode1Str}>小程序</Text> | ||||
| </View> | </View> | ||||
| <View style={styles.bottomQrcode2Background}> | <View style={styles.bottomQrcode2Background}> | ||||
| <CachedImage source={{ uri: this.state.baseInfo.imgQrcodeWemp}} resizeMode='center' style={styles.bottomQrcode2} /> | |||||
| <Image source={{ uri: this.state.baseInfo.imgQrcodeWemp}} resizeMode='center' style={styles.bottomQrcode2} /> | |||||
| <Text style={styles.bottomQrcode1Str}>公众号</Text> | <Text style={styles.bottomQrcode1Str}>公众号</Text> | ||||
| </View> | </View> | ||||
| <Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text> | <Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text> | ||||
| </View> | </View> | ||||
| </ImageBackground> | </ImageBackground> | ||||
| ); | |||||
| );} | |||||
| else { | |||||
| return ( | |||||
| <ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}> | |||||
| {/* 头部title二维码开始 */} | |||||
| <View style={styles.title}> | |||||
| </View> | |||||
| {/* 券列表展示列表开始 */} | |||||
| {this.getContentView()} | |||||
| {/* 底部商场信息展示开始 */} | |||||
| <View style={styles.bottom}> | |||||
| <View style={styles.bottomLogoBackground}> | |||||
| </View> | |||||
| <View style={styles.bottomQrcode1Background}> | |||||
| </View> | |||||
| <View style={styles.bottomQrcode2Background}> | |||||
| </View> | |||||
| <Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text> | |||||
| </View> | |||||
| </ImageBackground> | |||||
| ); | |||||
| } | |||||
| } | } | ||||
| @@ -513,7 +526,7 @@ render() { | |||||
| if (this.state.updating) { | if (this.state.updating) { | ||||
| return this.getUpdateView(); | return this.getUpdateView(); | ||||
| } | } | ||||
| return getAdView(); | |||||
| return this.getAdView(); | |||||
| } | } | ||||
| } | } | ||||