-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
81 lines (71 loc) · 2.09 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
* @flow
*/
import React, { Component } from 'react';
import { BackHandler, NetInfo, Platform } from 'react-native';
import { Provider } from 'react-redux';
import SplashScreen from 'react-native-splash-screen';
import AppNavigator from './src/routers';
import configureStore from './src/store';
const store = configureStore();
export default class App extends Component {
constructor(props) {
super(props);
this.index = 0;
this.lastBackPressed = 0;
}
render() {
return (
<Provider store={store}>
<AppNavigator onNavigationStateChange={this.onNavigationStateChange} />
</Provider>
);
}
componentDidMount() {
setTimeout(() => {
SplashScreen.hide();
}, 1000);
if (Platform.OS === 'android') {
BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
}
// NetInfo.isConnected.fetch().done((isConnected) => {
// if (!isConnected) {
// // ToastUtil.center('当前设备无网络连接,请检查网络!')
// }
// });
// NetInfo.addEventListener('change', this.handleConnectivityChange);
}
handleConnectivityChange(status) {
if (status === 'NONE') {
global.isConnected = false;
// ToastUtil.center('网络异常!');
} else {
global.isConnected = true;
}
// 监听第一次改变后, 可以取消监听.或者在componentUnmount中取消监听
// NetInfo.removeEventListener('change', this.handleConnectivityChange);
}
componentWillUnmount() {
if (Platform.OS === 'android') {
BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
}
}
onBackAndroid = () => {
if (this.index === 0) {
if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
return false;
}
this.lastBackPressed = Date.now();
// ToastAndroid.show('再点击一次退出应用', ToastAndroid.SHORT)
return true;
}
return false;
};
onNavigationStateChange = (nav) => {
this.index = nav.index;
};
}