app.js 2.97 KB
/**
 * Created by DEV005 on 2017/8/23.
 */
import React, {Component} from 'react';
import {
    StyleSheet,
    View,
    Text,
    NetInfo,
    Platform,
    Keyboard,
    NativeModules,
} from 'react-native';

import {xnToast,getHeaderHeight} from "./utils/utils";
import AppService from "./service/AppService";

import {StackNavigator} from 'react-navigation';
import Home from './pages/home';


const Navigator = StackNavigator(
    {
        Home: {screen: Home}
    },
    {
        navigationOptions: ({navigation}) => ({
            headerStyle: {
                elevation: 0, // 去掉阴影
                backgroundColor: '#fff',
                borderBottomWidth: 0,
                height:getHeaderHeight(),
            },
            headerTitleStyle: {
                alignSelf: 'center',
                alignItems: 'center',
                justifyContent: 'center',
                flexDirection: 'column',
                color: '#000',
                fontSize: 18,
                fontWeight: 'bold',
            }
        })
    }
);

class App extends Component {
    constructor(props) {
        super(props);
        this.state = {
            loading: true
        };
        if (Object.getOwnPropertyNames(props).length > 0) {
            global.initParam = {};
            for (key in props) {
                global.initParam[key] = props[key];
            }
        }
    }

    componentWillMount() {
        let _this = this;
        NetInfo.addEventListener('change', function (isConnected) {
            if (isConnected.toLocaleLowerCase() != 'none') {
                global.isConnected = true;
            } else {
                global.isConnected = false;
            }
        });

        NativeModules.security.getIdentityId().then((result) => {

                this.state.loading = false;
                global.identityId = result;
                AppService.getUserCode({}).then((data) => {
                    if (data && data.code) {
                        global.code = data.code;
                    }
                    _this.setState({
                        loading: false
                    });
                }).catch((error) => {
                    this.setState({
                        loading: false
                    });
                    xnToast(error)
                });

                //     });
            }
        ).catch((error) => {
            console.log(error)
        });

        if (Platform.OS == 'android') {
            NetInfo.isConnected.fetch().done((isConnected) => {
                if (isConnected) {
                    global.isConnected = true;
                } else {
                    global.isConnected = false;
                }
            });
        }
        ;


    };

    render() {
        return (
            <View style={styles.root}>
                {!this.state.loading && <Navigator/>}
            </View>
        );
    }
}

const styles = StyleSheet.create({
    root: {
        flex: 1
    }

});
export default App;