diff --git a/android/app/release/output.json b/android/app/release/output.json
index 16e1b0c5..5dae1a91 100644
--- a/android/app/release/output.json
+++ b/android/app/release/output.json
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"0.0.5","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.6","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 80c74332..dc167e6f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -10,10 +10,11 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app-release.apk b/app-release.apk
new file mode 100644
index 00000000..375d27e9
Binary files /dev/null and b/app-release.apk differ
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 263c2ab2..8eb0a6fe 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -222,6 +222,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
C38E5EAE601417DA9DF11753 /* [CP] Embed Pods Frameworks */,
+ 2432F011A7D713E4BFB3DC88 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -300,6 +301,24 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 2432F011A7D713E4BFB3DC88 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/flutter_downloader/FlutterDownloaderDatabase.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FlutterDownloaderDatabase.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 04305270..ba1a9822 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -42,7 +42,7 @@
{
bool _isLoading = true;
@override
- void initState() {
+ Future initState() {
super.initState();
+ var platformAandroid =
+ (Theme.of(context).platform == TargetPlatform.android);
+ DataUtils.checkVersion({'name': 'FlutterGo'}).then((bool) {
+ print("返回值back ${bool}");
+ if (platformAandroid && bool) {
+ setState(() {});
+ _UpdateURL();
+ }
+ }).catchError((onError) {
+ print('获取失败:$onError');
+ });
+
DataUtils.checkLogin().then((hasLogin) {
setState(() {
_hasLogin = hasLogin;
_isLoading = false;
});
- }).catchError((onError){
+ }).catchError((onError) {
setState(() {
_hasLogin = true;
_isLoading = false;
@@ -52,24 +68,34 @@ class _MyAppState extends State {
});
}
- showWelcomePage() {
- if (_isLoading) {
- return Container(
- color: const Color(ThemeColor),
- child: Center(
- child: SpinKitPouringHourglass(color: Colors.white),
- ),
- );
+ _UpdateURL() async {
+ const currUrl =
+ 'https://github.com/alibaba/flutter-go/raw/master/FlutterGo.apk';
+ if (await canLaunch(currUrl)) {
+ await launch(currUrl);
} else {
- // 判断是否已经登录
- if (_hasLogin) {
- return AppPage();
- } else {
- return LoginPage();
- }
+ throw 'Could not launch $currUrl';
}
}
+ showWelcomePage() {
+// if (_isLoading) {
+// return Container(
+// color: const Color(ThemeColor),
+// child: Center(
+// child: SpinKitPouringHourglass(color: Colors.white),
+// ),
+// );
+// } else {
+// // 判断是否已经登录
+// if (_hasLogin) {
+ return AppPage();
+// } else {
+// return LoginPage();
+// }
+// }
+ }
+
@override
Widget build(BuildContext context) {
return new MaterialApp(
@@ -88,6 +114,7 @@ class _MyAppState extends State {
),
),
home: new Scaffold(body: showWelcomePage()),
+ //去掉debug logo
debugShowCheckedModeBanner: false,
onGenerateRoute: Application.router.generator,
navigatorObservers: [Analytics.observer],
diff --git a/lib/model/user_info_cache.dart b/lib/model/user_info_cache.dart
index e2045f92..8bfe018c 100644
--- a/lib/model/user_info_cache.dart
+++ b/lib/model/user_info_cache.dart
@@ -59,4 +59,6 @@ class UserInfoControlModel {
Future deleteAll() async{
return await sql.deleteAll();
}
+
+
}
diff --git a/lib/model/version.dart b/lib/model/version.dart
new file mode 100644
index 00000000..019873cf
--- /dev/null
+++ b/lib/model/version.dart
@@ -0,0 +1,29 @@
+class Data {
+ String version;
+ String name;
+
+ Data.fromJson(Map json)
+ : version = json['version'],
+ name = json['name'];
+
+ @override
+ String toString() {
+ return 'name: $name ,version: $version';
+ }
+}
+
+class Version {
+ Data data;
+ int status;
+ bool success;
+
+ Version.formJson(Map json)
+ : status = json['status'],
+ success = json['success'],
+ data = Data.fromJson(json['data']);
+
+ @override
+ String toString() {
+ return 'status: $status ,success: $success,date: ${data.toString()}';
+ }
+}
diff --git a/lib/utils/data_utils.dart b/lib/utils/data_utils.dart
index 97858111..149c6e22 100644
--- a/lib/utils/data_utils.dart
+++ b/lib/utils/data_utils.dart
@@ -1,13 +1,16 @@
import 'dart:async' show Future;
+import 'package:flutter_go/model/version.dart';
+import 'package:package_info/package_info.dart';
+import 'package:url_launcher/url_launcher.dart';
+
import './net_utils.dart';
import '../model/user_info.dart';
import 'package:flutter_go/api/api.dart';
-
-class DataUtils{
+class DataUtils {
// 登陆获取用户信息
- static Future doLogin(Map params) async{
+ static Future doLogin(Map params) async {
var response = await NetUtils.post(Api.DO_LOGIN, params);
UserInfo userInfo = UserInfo.fromJson(response['data']);
return userInfo;
@@ -15,16 +18,36 @@ class DataUtils{
// 验证登陆
- static Future checkLogin() async{
+ static Future checkLogin() async {
var response = await NetUtils.get(Api.CHECK_LOGIN);
print('验证登陆:$response');
return response['success'];
}
// 退出登陆
- static Future logout() async{
+ static Future logout() async {
var response = await NetUtils.get(Api.LOGOUT);
print('退出登陆 $response');
return response['success'];
}
-}
\ No newline at end of file
+
+ /**
+ * {"status":200,"data":{"version":"0.0.2","name":"FlutterGo"},"success":true}
+ */
+ // 检查版本
+ static Future checkVersion(Map params) async {
+ var response = await NetUtils.get(Api.VERSION, params);
+ Version version = Version.formJson(response);
+ var currVersion = version.data.version;
+ PackageInfo packageInfo = await PackageInfo.fromPlatform();
+ var localVersion = packageInfo.version;
+ //相同=0、大于=1、小于=-1
+// localVersion = '0.0.2';
+// currVersion = '1.0.6';
+ if (currVersion.compareTo(localVersion) == 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/lib/views/first_page/first_page.dart b/lib/views/first_page/first_page.dart
index be9de1e5..8c7f66ea 100644
--- a/lib/views/first_page/first_page.dart
+++ b/lib/views/first_page/first_page.dart
@@ -26,24 +26,24 @@ class FirstPageState extends State with AutomaticKeepAliveClientMixin
bool get wantKeepAlive => true;
- @override
+ @override
void initState() {
super.initState();
if (key == null) {
- key = GlobalKey();
- // key = const Key('__RIKEY1__');
+ key = GlobalKey();
+ // key = const Key('__RIKEY1__');
//获取sharePre
- _unKnow = _prefs.then((SharedPreferences prefs) {
- return (prefs.getBool('disclaimer::Boolean') ?? false);
- });
+ _unKnow = _prefs.then((SharedPreferences prefs) {
+ return (prefs.getBool('disclaimer::Boolean') ?? false);
+ });
/// 判断是否需要弹出免责声明,已经勾选过不在显示,就不会主动弹
_unKnow.then((bool value) {
- new Future.delayed(const Duration(seconds: 1),(){
- if (!value && key.currentState is DisclaimerMsgState && key.currentState.showAlertDialog is Function) {
- key.currentState.showAlertDialog(context);
- }
- });
+ new Future.delayed(const Duration(seconds: 1),(){
+ if (!value && key.currentState is DisclaimerMsgState && key.currentState.showAlertDialog is Function) {
+ key.currentState.showAlertDialog(context);
+ }
+ });
});
}
}
@@ -93,15 +93,15 @@ class FirstPageState extends State with AutomaticKeepAliveClientMixin
Column(
children: [
Stack(
- //alignment: const FractionalOffset(0.9, 0.1),//方法一
- children: [
- Pagination(),
- Positioned(//方法二
- top: 10.0,
- left: 0.0,
- child: DisclaimerMsg(key:key,pWidget:this)
- ),
- ]),
+ //alignment: const FractionalOffset(0.9, 0.1),//方法一
+ children: [
+ Pagination(),
+ Positioned(//方法二
+ top: 10.0,
+ left: 0.0,
+ child: DisclaimerMsg(key:key,pWidget:this)
+ ),
+ ]),
SizedBox(height: 1, child:Container(color: Theme.of(context).primaryColor)),
SizedBox(height: 10),
],
@@ -127,7 +127,7 @@ class FirstPageState extends State with AutomaticKeepAliveClientMixin
// SizedBox(height: 2, child:Container(color: Theme.of(context).primaryColor)),
new Expanded(
//child: new List(),
- child: listComp.ListRefresh(getIndexListData,makeCard,headerView)
+ child: listComp.ListRefresh(getIndexListData,makeCard,headerView)
)
]
diff --git a/lib/views/first_page/main_page.dart b/lib/views/first_page/main_page.dart
index 43383a85..1b4f492d 100644
--- a/lib/views/first_page/main_page.dart
+++ b/lib/views/first_page/main_page.dart
@@ -12,10 +12,10 @@ class _Page {
}
final List<_Page> _allPages = <_Page>[
- _Page('项目1'),
- _Page('项目2'),
- _Page('项目3'),
- _Page('项目4'),
+ _Page('项目1'),
+ _Page('项目2'),
+ _Page('项目3'),
+ _Page('项目4'),
];
class MainPage extends StatelessWidget {
@@ -37,7 +37,7 @@ class MainPage extends StatelessWidget {
centerTitle: true,
title: TabLayout(),
actions: [
- IconButton(
+ IconButton(
icon: Icon(Icons.search),
onPressed: () {
pushPage(context, SearchPage(), pageName: "SearchPage");
@@ -67,7 +67,7 @@ class TabLayout extends StatelessWidget {
indicatorSize: TabBarIndicatorSize.label,
tabs: _allPages
.map((_Page page) =>
- Tab(text: page.labelId))
+ Tab(text: page.labelId))
.toList(),
);
}
@@ -100,7 +100,7 @@ class TabBarViewLayout extends StatelessWidget {
print("TabBarViewLayout build.......");
return TabBarView(
children: _allPages.map((_Page page) {
- return buildTabView(context, page);
- }).toList());
+ return buildTabView(context, page);
+ }).toList());
}
}
diff --git a/lib/views/home.dart b/lib/views/home.dart
index c0f63681..1d24cc49 100644
--- a/lib/views/home.dart
+++ b/lib/views/home.dart
@@ -24,6 +24,7 @@ import 'package:flutter_go/resources/widget_name_to_icon.dart';
const int ThemeColor = 0xFFC91B3A;
class AppPage extends StatefulWidget {
+
@override
State createState() {
return _MyHomePageState();
@@ -32,6 +33,7 @@ class AppPage extends StatefulWidget {
class _MyHomePageState extends State
with SingleTickerProviderStateMixin {
+
SpUtil sp;
WidgetControlModel widgetControl = new WidgetControlModel();
SearchHistoryList searchHistoryList;
@@ -40,10 +42,10 @@ class _MyHomePageState extends State
List list = List();
int _currentIndex = 0;
static List tabData = [
- {'text': '业界动态', 'icon': Icon(Icons.language)},
+// {'text': '业界动态', 'icon': Icon(Icons.language)},
{'text': 'WIDGET', 'icon': Icon(Icons.extension)},
{'text': '组件收藏', 'icon': Icon(Icons.favorite)},
- {'text': '关于手册', 'icon': Icon(Icons.import_contacts)}
+ {'text': '关于手册', 'icon': Icon(Icons.import_contacts)},
];
List myTabs = [];
@@ -62,7 +64,7 @@ class _MyHomePageState extends State
}
list
// ..add(FirstPage())
- ..add(MainPage())
+// ..add(MainPage())
..add(WidgetPage(Provider.db))
..add(CollectionPage())
..add(FourthPage());
@@ -98,7 +100,7 @@ class _MyHomePageState extends State
}
Widget buildSearchInput(BuildContext context) {
- return new SearchInput((value) async {
+ return new SearchInput((value) async {
if (value != '') {
List list = await widgetControl.search(value);
return list
@@ -107,7 +109,7 @@ class _MyHomePageState extends State
icon: WidgetName2Icon.icons[item.name] ?? null,
text: 'widget',
onTap: () {
- onWidgetTap(item, context);
+ onWidgetTap(item, context);
},
))
.toList();
@@ -117,18 +119,18 @@ class _MyHomePageState extends State
}, (value) {}, () {});
}
- renderAppBar(BuildContext context,Widget widget,int index) {
- print('renderAppBar=====>>>>>>${index}');
- if(index == 0) {
- return null;
- }
+ renderAppBar(BuildContext context, Widget widget, int index) {
+// print('renderAppBar=====>>>>>>${index}');
+// if (index == 0) {
+// return null;
+// }
return AppBar(title: buildSearchInput(context));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
- appBar: renderAppBar(context,widget,_currentIndex),
+ appBar: renderAppBar(context, widget, _currentIndex),
body: list[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
items: myTabs,
diff --git a/pubspec.lock b/pubspec.lock
index e6e3e04f..9f81d55e 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,105 +5,105 @@ packages:
dependency: transitive
description:
name: args
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.5.1"
async:
dependency: transitive
description:
name: async
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.0"
+ version: "2.0.8"
bloc:
dependency: "direct main"
description:
name: bloc
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
charcode:
dependency: transitive
description:
name: charcode
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
city_pickers:
dependency: "direct main"
description:
name: city_pickers
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
cookie_jar:
dependency: "direct main"
description:
name: cookie_jar
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
csslib:
dependency: transitive
description:
name: csslib
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.16.0"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
dio:
dependency: "direct main"
description:
name: dio
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
event_bus:
dependency: "direct main"
description:
name: event_bus
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
firebase_analytics:
dependency: "direct main"
description:
name: firebase_analytics
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0+1"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.3.4"
fluro:
dependency: "direct main"
description:
name: fluro
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
flutter:
@@ -115,21 +115,28 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.11.1"
+ flutter_downloader:
+ dependency: "direct main"
+ description:
+ name: flutter_downloader
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.7"
flutter_markdown:
dependency: "direct main"
description:
name: flutter_markdown
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
flutter_spinkit:
dependency: "direct main"
description:
name: flutter_spinkit
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "3.1.0"
flutter_test:
@@ -141,98 +148,119 @@ packages:
dependency: "direct main"
description:
name: flutter_webview_plugin
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.3.4"
+ version: "0.3.5"
html:
dependency: "direct main"
description:
name: html
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.14.0+2"
image_picker:
dependency: "direct main"
description:
name: image_picker
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.0+2"
+ version: "0.6.0+3"
intl:
dependency: "direct main"
description:
name: intl
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.15.7"
lpinyin:
dependency: transitive
description:
name: lpinyin
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.0.7"
markdown:
dependency: transitive
description:
name: markdown
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.5"
+ version: "0.12.3+1"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
+ open_file:
+ dependency: "direct main"
+ description:
+ name: open_file
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.1+2"
+ package_info:
+ dependency: "direct main"
+ description:
+ name: package_info
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.4.0+3"
path:
dependency: transitive
description:
name: path
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.6.2"
path_provider:
dependency: "direct main"
description:
name: path_provider
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.0"
+ version: "1.1.0"
pedantic:
dependency: transitive
description:
name: pedantic
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.5.0"
+ version: "1.4.0"
+ permission_handler:
+ dependency: "direct main"
+ description:
+ name: permission_handler
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.1"
quiver:
dependency: transitive
description:
name: quiver
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.3"
+ version: "2.0.1"
rxdart:
dependency: transitive
description:
name: rxdart
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.21.0"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "0.4.3"
sky_engine:
@@ -244,79 +272,79 @@ packages:
dependency: transitive
description:
name: source_span
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.5.5"
+ version: "1.5.4"
sqflite:
dependency: "direct main"
description:
name: sqflite
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.5"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.0"
+ version: "1.6.8"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
synchronized:
dependency: transitive
description:
name: synchronized
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.5"
+ version: "0.2.2"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "5.0.2"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "2.0.8"
sdks:
- dart: ">=2.2.0 <3.0.0"
+ dart: ">=2.1.0 <3.0.0"
flutter: ">=1.2.1 <2.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index d85a81e9..215175bc 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,7 +7,7 @@ description: flutter_go
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# Read more about versioning at semver.org.
-version: 1.0.0
+version: 1.0.6
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
@@ -28,7 +28,6 @@ dependencies:
# 本地存储、收藏功能
shared_preferences: ^0.4.3
flutter_spinkit: "^3.1.0"
- path_provider: ^1.0.0
dio: ^2.0.15
flutter_webview_plugin: ^0.3.4
cookie_jar: ^1.0.0
@@ -41,6 +40,11 @@ dependencies:
flutter_bloc: ^0.11.1
bloc: ^0.12.0
html: ^0.14.0+2
+ flutter_downloader: ^1.1.7
+ path_provider: ^1.1.0
+ permission_handler: ^3.0.0
+ open_file: ^2.0.1+2
+ package_info: ^0.4.0+3
dev_dependencies:
flutter_test: