Browse Source

1.增加进入应用判断是否有用户
2.没有用户去登录页,有用户进入首页

zhangmengjie 5 years ago
parent
commit
c1c0b6d9ad
3 changed files with 67 additions and 8 deletions
  1. 0 1
      pages/BasePage.js
  2. 22 6
      pages/Login.js
  3. 45 1
      pages/Splash.js

+ 0 - 1
pages/BasePage.js

@@ -91,7 +91,6 @@ export default class BasePage extends Component<Props> {
 			//e是原生传过来的参数,ceshi是安卓里面put的key
 			alert(e.ceshi);
 		});
-
 		this.toJsByAndroid = DeviceEventEmitter.addListener('toJsByAndroid', (e) => {
 			alert(e.name);
 			alert(e.sex);

+ 22 - 6
pages/Login.js

@@ -89,9 +89,6 @@ export default class Login extends BasePage {
 						ToastAndroid.show(result.message, ToastAndroid.SHORT);
 						return;
 					} else {
-						console.log('====================================');
-						console.log(result.data);
-						console.log('====================================');
 						this.setState({
 							http_verification_code: result.data
 						});
@@ -114,7 +111,7 @@ export default class Login extends BasePage {
 				verification_text: '获取验证码'
 			});
 		} else {
-			setTimeout(() => {
+			this.count_timeout = setTimeout(() => {
 				this.setState({
 					verification_text: parseInt(this.state.verification_text) - 1 + ''
 				});
@@ -146,6 +143,12 @@ export default class Login extends BasePage {
 			http_user.mobileLoginAndReg(option).then((result) => {
 				if (result.code == 200) {
 					//登陆成功了,可以存储用户数据到本地
+					console.log('===============手机号登录成功=====================');
+					console.log(result.data);
+					console.log('===============手机号登录成功=====================');
+
+					clearTimeout(this.count_timeout);
+					this.saveUserInfo(result.data);
 					this.clearPageToNext('SchoolAge');
 				} else {
 					ToastAndroid.show(result.message, ToastAndroid.SHORT);
@@ -157,7 +160,6 @@ export default class Login extends BasePage {
 	}
 
 	wechatLogin() {
-		console.log('this.state.deviceCode:' + this.state.deviceCode);
 		wechat.wechatLogin((user) => {
 			let option = {
 				method: 'POST',
@@ -174,14 +176,28 @@ export default class Login extends BasePage {
 			http_user.wechatLogin(option).then((result) => {
 				if (result.code == 200) {
 					//登陆成功了,可以存储用户数据到本地
+					this.saveUserInfo(result.data);
 					this.clearPageToNext('SchoolAge');
 				} else {
 					ToastAndroid.show(result.message, ToastAndroid.SHORT);
 				}
-				console.log('result-------:' + result);
 			});
 		});
 	}
+
+	saveUserInfo(user_data) {
+		global.storage
+			.save({
+				key: 'userInfo',
+				data: user_data
+			})
+			.then((result) => {
+				console.log('保存成功');
+			})
+			.catch((err) => {
+				console.log('保存失败');
+			});
+	}
 }
 
 const styles = StyleSheet.create({

+ 45 - 1
pages/Splash.js

@@ -3,6 +3,9 @@ import { StyleSheet, Text, View, Image, TouchableOpacity, StatusBar, ToastAndroi
 import BasePage from './BasePage';
 import SplashScreen from 'react-native-splash-screen';
 export default class Splash extends BasePage {
+	state = {
+		exist: false
+	};
 	render() {
 		return (
 			<View style={{ flex: 1 }}>
@@ -11,10 +14,51 @@ export default class Splash extends BasePage {
 		);
 	}
 
+	componentWillMount() {
+		// global.storage.remove({ key: 'userInfo' });
+		this.getUserInfo();
+	}
+
 	componentDidMount() {
 		setTimeout(() => {
 			SplashScreen.hide();
-			this.clearPageToNext('Login');
+			if (this.state.exist) {
+				this.clearPageToNext('MainPage');
+			} else {
+				this.clearPageToNext('Login');
+			}
 		}, 3000);
 	}
+
+	getUserInfo() {
+		//判断是否有用户
+		global.storage
+			.load({
+				key: 'userInfo'
+			})
+			.then((result) => {
+				console.log('====================================');
+				console.log(result);
+				console.log('====================================');
+				this.setState({
+					exist: true
+				});
+			})
+			.catch((err) => {
+				console.log(err.message);
+				switch (err.name) {
+					case 'NotFoundError':
+						// TODO;
+						// alert('NotFoundError');
+						this.setState({
+							exist: false
+						});
+						break;
+					case 'ExpiredError':
+						// TODO
+						// alert('ExpiredError');
+						break;
+				}
+			});
+	}
 }