diff --git a/android/app/.classpath b/android/app/.classpath
new file mode 100644
index 00000000..eb19361b
--- /dev/null
+++ b/android/app/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/android/app/.project b/android/app/.project
new file mode 100644
index 00000000..ac485d7c
--- /dev/null
+++ b/android/app/.project
@@ -0,0 +1,23 @@
+
+
+ app
+ Project app created by Buildship.
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.buildship.core.gradleprojectbuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.buildship.core.gradleprojectnature
+
+
diff --git a/android/app/.settings/org.eclipse.buildship.core.prefs b/android/app/.settings/org.eclipse.buildship.core.prefs
new file mode 100644
index 00000000..b1886adb
--- /dev/null
+++ b/android/app/.settings/org.eclipse.buildship.core.prefs
@@ -0,0 +1,2 @@
+connection.project.dir=..
+eclipse.preferences.version=1
diff --git a/lib/api/api.dart b/lib/api/api.dart
index c4672887..93d4f6b8 100644
--- a/lib/api/api.dart
+++ b/lib/api/api.dart
@@ -1,5 +1,6 @@
class Api{
- static const String BASE_URL = 'http://127.0.0.1:6001/';
+ // static const String BASE_URL = 'http://127.0.0.1:6001/';
+ static const String BASE_URL = 'http://flutter-go.alibaba.net/';
static const String DO_LOGIN = BASE_URL+'doLogin';//登陆
diff --git a/lib/main.dart b/lib/main.dart
index 1d66ca15..fdcee399 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -3,7 +3,7 @@ import 'package:fluro/fluro.dart';
import 'package:flutter/rendering.dart';
import 'routers/routers.dart';
import 'routers/application.dart';
-
+import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:flutter_go/utils/provider.dart';
import 'package:flutter_go/utils/shared_preferences.dart';
import 'package:flutter_go/views/home.dart';
@@ -33,6 +33,7 @@ class MyApp extends StatefulWidget {
class _MyAppState extends State {
bool _hasLogin = false;
+ bool _isLoading = true;
@override
void initState() {
@@ -40,16 +41,32 @@ class _MyAppState extends State {
DataUtils.checkLogin().then((hasLogin) {
setState(() {
_hasLogin = hasLogin;
+ _isLoading = false;
});
+ }).catchError((onError){
+ setState(() {
+ _hasLogin = true;
+ _isLoading = false;
+ });
+ print('身份信息验证失败:$onError');
});
}
showWelcomePage() {
- // 暂时关掉欢迎介绍
- if (_hasLogin) {
- return AppPage();
+ if (_isLoading) {
+ return Container(
+ color: const Color(ThemeColor),
+ child: Center(
+ child: SpinKitPouringHourglass(color: Colors.white),
+ ),
+ );
} else {
- return LoginPage();
+ // 判断是否已经登录
+ if (_hasLogin) {
+ return AppPage();
+ } else {
+ return LoginPage();
+ }
}
}
diff --git a/lib/utils/net_utils.dart b/lib/utils/net_utils.dart
index af2eda80..2f39746c 100644
--- a/lib/utils/net_utils.dart
+++ b/lib/utils/net_utils.dart
@@ -1,25 +1,45 @@
import 'dart:async';
-
+import 'dart:io';
+import 'package:cookie_jar/cookie_jar.dart';
import 'package:dio/dio.dart';
+import 'package:path_provider/path_provider.dart';
+Map optHeader = {
+ 'accept-language':'zh-cn',
+ 'content-type':'application/json'
+};
-var dio = new Dio();
+var dio = new Dio(BaseOptions(connectTimeout: 30000,headers: optHeader));
class NetUtils {
-
- static Future get(String url,[Map params]) async{
+
+ static Future get(String url, [Map params]) async {
var response;
- if(params != null){
- response = await dio.get(url, data: params);
- }else{
+
+ // 设置代理 便于本地 charles 抓包
+ // (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
+ // (HttpClient client) {
+ // client.findProxy = (uri) {
+ // return "PROXY 30.10.26.193:8888";
+ // };
+ // };
+
+ Directory documentsDir = await getApplicationDocumentsDirectory();
+ String documentsPath = documentsDir.path;
+ var dir = new Directory("$documentsPath/cookies");
+ await dir.create();
+ // print('documentPath:${dir.path}');
+ dio.interceptors.add(CookieManager(PersistCookieJar(dir: dir.path)));
+ if (params != null) {
+ response = await dio.get(url, queryParameters: params);
+ } else {
response = await dio.get(url);
}
-
- return response.data;
+ return response.data;
}
- static Future post(String url,Map params) async{
+ static Future post(String url, Map params) async {
var response = await dio.post(url, data: params);
return response.data;
}
-}
\ No newline at end of file
+}
diff --git a/lib/views/login_page/login_page.dart b/lib/views/login_page/login_page.dart
index db895693..0e658ec8 100644
--- a/lib/views/login_page/login_page.dart
+++ b/lib/views/login_page/login_page.dart
@@ -186,6 +186,7 @@ class _LoginPageState extends State {
});
DataUtils.doLogin({'username': username, 'password': password})
.then((result) {
+ print(result);
setState(() {
isLoading = false;
});
diff --git a/pubspec.yaml b/pubspec.yaml
index 08d953de..d85a81e9 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -28,8 +28,10 @@ dependencies:
# 本地存储、收藏功能
shared_preferences: ^0.4.3
flutter_spinkit: "^3.1.0"
- dio: ^1.0.6
+ path_provider: ^1.0.0
+ dio: ^2.0.15
flutter_webview_plugin: ^0.3.4
+ cookie_jar: ^1.0.0
# 日期格式化
intl: 0.15.7
city_pickers: ^0.0.1