app.js 2.98 KB
/**
 * Created by DEV005 on 2017/8/23.
 */
import React, { Component } from 'react';
import { BackHandler,AppState,StyleSheet,View,Text
    , NativeModules,AsyncStorage,NavigationActions,
    ActivityIndicator,TouchableOpacity,Image,Touch,Platform,Dimensions
} from 'react-native';

import { StackNavigator,TabNavigator } from 'react-navigation';
import AppService from "./service/AppService";
import {xnToast,getHeaderHeight,getHeaderPadding,getFooterBottom} from "./utils/utils";
import {width,height} from "./utils/getSize";
//横竖屏
import Orientation from 'react-native-orientation';
//键盘启用与消失
import dismissKeyboard from 'react-native/Libraries/Utilities/dismissKeyboard';
import XnLoading from "./components/xnLoading";
//
// import {Subscribe,SubscribeDOM} from 'react-subscribe';
//通信
// import RPC from './utils/rpc';
//通信
// import hookNavigator from './utils/hookNavigator';


import Index from './pages/index';
import Detail from './pages/Detail';

const Navigator  = StackNavigator({
    Index:{screen:Index},
    Detail:{screen:Detail},


},{
    // headerMode: 'none', // 导航栏的显示模式, screen: 有渐变透明效果, float: 无透明效果, none: 隐藏导航栏
    navigationOptions:{
        // // 设置导航条的样式。如果想去掉安卓导航条底部阴影可以添加elevation: 0,iOS去掉阴影是。
        headerStyle:{
            paddingTop:getHeaderPadding(),
            backgroundColor: '#fff',
            elevation: 0,   //去掉阴影
            height:getHeaderHeight(),
        },
        // 设置导航条文字样式。安卓上如果要设置文字居中,只要添加alignSelf:'center'就可以了
        headerTitleStyle:{
            color:'#000',
            alignSelf:"center",
            alignItems: 'center',
            justifyContent: 'center',
            flexDirection: 'column',
            fontSize:17,
        },
        headerLeft:(<View style={{flexDirection: 'row',flex: 1}}></View>),
        headerRight:(<View style={{flexDirection: 'row',flex: 1}}></View>)
    }
});

class App extends Component{

    constructor(props){
        super(props);
        this.state = {
            loading:true
        };
    }

    getUnionId=()=>{
        NativeModules.security.getUnionId().then((result) => {
                console.log(result);
                global.unionId = result;
                // result
                this.setState({
                    loading:false
                });
            }
        ).catch((error) => {
            console.log(error)
        });
    }

    componentWillMount(){
        let _this=this;
        this.getUnionId();


    }

    render() {
        return  <View style={styles.root}>
            {/*加载中*/}
            {this.state.loading &&<XnLoading/>}
            {!this.state.loading &&<Navigator />}
        </View>
    }
}
const styles = StyleSheet.create({
    root: {
        flex: 1,
        marginBottom:getFooterBottom(),
        backgroundColor:"#fff",
    }

});
export default App;