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