app.js 2.72 KB
/**
 * Created by DEV005 on 2017/8/23.
 */
import React, {Component} from 'react';
import {
    StyleSheet,
    View,
    NetInfo,
    Platform,
    NativeModules,
} from 'react-native';
import {Navigator} from 'xn-react-native-general-head';
import {xnToast} from "./utils/utils";
import AppService from "./service/AppService";

import Home from './pages/home';

const NavigatorNav = Navigator( { Home:{screen:Home}, //此处为创建各个页面时所添加的位置 ,排在第一个则先显示 Second:{screen:Second}
},
    {
        defaultBack:'black',
        title:"通行码" ,
        code:"myqrcode",//此项未设置头部按钮颜色,传入'black' 默认为 黑底白色图标传入其他值或者不传则为 白底黑色图标
        config:'DEV'
    } )

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 && <View style={{flex:1}}>{NavigatorNav}</View>}
            </View>
        );
    }
}

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

});
export default App;