Просмотр исходного кода

[系统][修改]:开机联网,获取信息检查

tags/jenkins-front-end-screenad-70-v45^0
hupeng 6 лет назад
Родитель
Сommit
20197f6842
4 измененных файлов: 84 добавлений и 42 удалений
  1. +55
    -40
      App.js
  2. +0
    -2
      HttpUtils.js
  3. +7
    -0
      android/app/src/main/AndroidManifest.xml
  4. +22
    -0
      android/app/src/main/java/com/screenad/AutoStartBroadcastReceiver.java

+ 55
- 40
App.js Просмотреть файл

@@ -19,7 +19,7 @@ import DeviceInfo from "react-native-device-info";

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

var testMac = '11:AA:33:BB:44'
var testMac = 'FF:FF:FF:FF:FF:FF'

var contentItemDefault = {
type:0,
@@ -44,8 +44,8 @@ var baseInfoDefault = {
var curAdIndex = 0;

var errorMsg = {
ERR_MAC_GET:'MAC地址获取错误',
ERR_DATA_GET:'数据获取错误'
ERR_MAC_GET:'设备编号获取错误',
ERR_DATA_GET:'广告数据获取错误'

}

@@ -62,8 +62,8 @@ export default class MyPage extends Component {

contentDisplayStatus:false,

syncMessage: "Init" ,
errorMessage: 'Loading...',
syncMessage: "初始化..." ,
errorMessage: '加载中...',

progress: {
receivedBytes:0,
@@ -110,6 +110,9 @@ codePushStatusDidChange(syncStatus) {
}

updateContent() {
if (this.state.adDataList.length <=0)
return false;

if (curAdIndex >= this.state.adDataList.length) {
curAdIndex = 0
}
@@ -127,6 +130,7 @@ codePushStatusDidChange(syncStatus) {
this.setState({contentItem2:null});
curAdIndex+=3
return true;
}
hbRequest() {
@@ -140,50 +144,49 @@ codePushStatusDidChange(syncStatus) {
}

getAdDataList() {
HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/list?deviceId='+encodeURIComponent(this.state.macAddress)+'&pageNum=1&pageSize=1000')
.then(result => {
HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/list?deviceId='+encodeURIComponent(this.state.macAddress)+'&pageNum=1&pageSize=1000')
.then((result) => {
if (result.code != 200) {
this.setState({errorMessage : result.message});
this.setState({contentDisplayStatus: false})
}
if (result.data.list) {
this.setState({errorMessage : result.message+'\n'+this.state.macAddress});
} else if (result.data.list) {
this.setState({adDataList : result.data.list});
this.updateContent();
if (this.updateContent()) {
this.setState({contentDisplayStatus: true})
}
} else {
this.setState({errorMessage : errorMsg.ERR_DATA_GET});
this.setState({contentDisplayStatus: false})
this.setState({errorMessage : errorMsg.ERR_DATA_GET});
}
})
.catch(error => {
console.error(error)
this.setState({errorMessage : error});
this.setState({contentDisplayStatus: false})
this.setState({errorMessage : error.message});
})
}

getBaseInfo() {
HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/info?deviceId='+encodeURIComponent(this.state.macAddress))
HttpUtils.get(NativeModules.BuildConfig.apiHost + 'api/wxDeviceScreenAd/info?deviceId='+encodeURIComponent(this.state.macAddress))
.then(result => {
if (result.code != 200) {
this.setState({errorMessage : result.message});
this.setState({contentDisplayStatus: false})
}
if (result.data) {
this.setState({errorMessage : result.message+'\n'+this.state.macAddress});
} else if (result.data) {
this.setState({baseInfo:result.data});
}
else {
this.setState({errorMessage : errorMsg.ERR_DATA_GET});
} else {
this.setState({contentDisplayStatus: false})
this.setState({errorMessage : errorMsg.ERR_DATA_GET});
}
})
.catch(error => {
console.error(error)
this.setState({errorMessage : error});
this.setState({contentDisplayStatus: false})
this.setState({errorMessage : error.message});
})
}


componentDidMount() {
CodePush.allowRestart();
CodePush.sync(
@@ -199,34 +202,46 @@ componentDidMount() {
this.setState({ versionInfo: "Unknown"});
});

DeviceInfo.getMACAddress().then(mac=>{
if (mac=='') {
this.startAd(testMac)
} else {
this.startAd(mac)
}
this.setState({ contentDisplayStatus: true})
}).catch(e => {
this.setState({errorMessage : errorMsg.ERR_MAC_GET});
})
DeviceInfo.getMACAddress().then((mac)=>{
if (mac=='') {
if (NativeModules.BuildConfig.buildType == 'debug') {
this.setState({macAddress : this.testMac})
this.startAd()
} else {
this.setState({ contentDisplayStatus: false})
this.setState({ errorMessage : errorMsg.ERR_MAC_GET});
}
} else {
this.setState({macAddress : mac})
this.startAd()
}
this.setState({ contentDisplayStatus: true})
}).catch(e => {
this.setState({ contentDisplayStatus: false})
this.setState({ errorMessage : errorMsg.ERR_MAC_GET});
})
}

startAd(mac) {
startAd() {
this.getBaseInfo()
this.getAdDataList()
setInterval(
()=>{
this.setState({ contentDisplayStatus: false})
this.updateContent();
this.setState({ contentDisplayStatus: true})
if (this.state.contentDisplayStatus) {
this.setState({ contentDisplayStatus: false})
if (this.updateContent()) {
this.setState({ contentDisplayStatus: true})
}
} else {
this.getBaseInfo()
this.getAdDataList()
}
},
1000*10, //10秒更新一下页面
);
setInterval(
()=>{
this.setState({ contentDisplayStatus: false})
this.getAdDataList()
this.setState({ contentDisplayStatus: true})
},
1000*60*60, //1小时一次
);


+ 0
- 2
HttpUtils.js Просмотреть файл

@@ -10,7 +10,6 @@ export default class HttpUtil {
fetch(url)
.then(response => response.json())
.then(result => resolve(result))
.catch(error => reject(error))
})
}
@@ -32,7 +31,6 @@ export default class HttpUtil {
})
.then(response => response.json())
.then(result => resolve(result))
.catch(error => reject(error))
})
}
}


+ 7
- 0
android/app/src/main/AndroidManifest.xml Просмотреть файл

@@ -4,6 +4,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
android:name=".MainApplication"
@@ -25,6 +26,12 @@
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
<receiver android:name=".AutoStartBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
</application>

</manifest>

+ 22
- 0
android/app/src/main/java/com/screenad/AutoStartBroadcastReceiver.java Просмотреть файл

@@ -0,0 +1,22 @@
package com.screenad;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
//开机自启动广播接受
public class AutoStartBroadcastReceiver extends BroadcastReceiver {
static final String action_boot ="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot) && !BuildConfig.BUILD_TYPE.equals("debug")){
Intent sayHelloIntent=new Intent(context,MainActivity.class);
sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(sayHelloIntent);
}
}
}

Загрузка…
Отмена
Сохранить