diff --git a/FlutterGo.apk b/FlutterGo.apk
new file mode 100644
index 00000000..01ce3048
Binary files /dev/null and b/FlutterGo.apk differ
diff --git a/README.md b/README.md
index b98572d4..b545dc8b 100644
--- a/README.md
+++ b/README.md
@@ -23,14 +23,19 @@ Language: [English](https://github.com/alibaba/flutter-go/blob/master/README-en.
+
## Release安装包下载地址
-android下载地址:
+### android正式版,下载地址:
-
+- 华为市场已上线,华为应用市场搜索 "Fluttergo"或者直接[点击下载](https://appstore.huawei.com/search/fluttergo)
+
+
+### iphone正式版,下载地址:
+
+- AppStore 搜索 "Fluttego" 或者直接[点击下载](https://itunes.apple.com/cn/app/flutter-go/id1462026296?mt=8)
+
-iphone下载地址:
-暂无
## 基础环境
本项目环境持续更新. 请定期更新各依赖包.
diff --git a/android/app/release/app-release.apk b/android/app/release/app-release.apk
new file mode 100644
index 00000000..296ac626
Binary files /dev/null and b/android/app/release/app-release.apk differ
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/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..3dca3861 100644
--- a/lib/views/home.dart
+++ b/lib/views/home.dart
@@ -37,32 +37,32 @@ class _MyHomePageState extends State
SearchHistoryList searchHistoryList;
bool isSearch = false;
String appBarTitle = tabData[0]['text'];
- List list = List();
+ 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 = [];
+ List _myTabs = [];
@override
void initState() {
super.initState();
initSearchHistory();
for (int i = 0; i < tabData.length; i++) {
- myTabs.add(BottomNavigationBarItem(
+ _myTabs.add(BottomNavigationBarItem(
icon: tabData[i]['icon'],
title: Text(
tabData[i]['text'],
),
));
}
- list
+ _list
// ..add(FirstPage())
- ..add(MainPage())
+// ..add(MainPage())
..add(WidgetPage(Provider.db))
..add(CollectionPage())
..add(FourthPage());
@@ -98,7 +98,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 +107,7 @@ class _MyHomePageState extends State
icon: WidgetName2Icon.icons[item.name] ?? null,
text: 'widget',
onTap: () {
- onWidgetTap(item, context);
+ onWidgetTap(item, context);
},
))
.toList();
@@ -117,25 +117,28 @@ 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),
- body: list[_currentIndex],
+ appBar: renderAppBar(context, widget, _currentIndex),
+ body: IndexedStack(
+ index: _currentIndex,
+ children: _list,
+ ),
bottomNavigationBar: BottomNavigationBar(
- items: myTabs,
+ items: _myTabs,
//高亮 被点击高亮
currentIndex: _currentIndex,
//修改 页面
- onTap: _ItemTapped,
+ onTap: _itemTapped,
//shifting :按钮点击移动效果
//fixed:固定
type: BottomNavigationBarType.fixed,
@@ -145,7 +148,7 @@ class _MyHomePageState extends State
);
}
- void _ItemTapped(int index) {
+ void _itemTapped(int index) {
setState(() {
_currentIndex = index;
appBarTitle = tabData[index]['text'];
diff --git a/lib/widgets/404.dart b/lib/widgets/404.dart
index 7a6a0207..52149ac3 100644
--- a/lib/widgets/404.dart
+++ b/lib/widgets/404.dart
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
class WidgetNotFound extends StatelessWidget {
-
+ @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
diff --git a/lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart b/lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart
index 967381f5..6cd604d7 100644
--- a/lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart
+++ b/lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart
@@ -15,7 +15,7 @@ class _CheckedPopupMenuItemDemoState extends State {
final String _checkedValue1 = 'One';
final String _checkedValue2 = 'Two';
- final String _checkedValue3 = 'Free';
+ final String _checkedValue3 = 'Three';
final String _checkedValue4 = 'Four';
@override
diff --git a/lib/widgets/components/Menu/DropdownMenuItem/demo.dart b/lib/widgets/components/Menu/DropdownMenuItem/demo.dart
index 9c3e423f..effe3dd8 100644
--- a/lib/widgets/components/Menu/DropdownMenuItem/demo.dart
+++ b/lib/widgets/components/Menu/DropdownMenuItem/demo.dart
@@ -11,7 +11,7 @@ class DropdownMenuItemDemo extends StatefulWidget {
class _DropdownMenuItemDemoState extends State {
- String dropdown1Value = 'Free';
+ String dropdown1Value = 'Three';
String dropdown2Value;
String dropdown3Value = 'Four';
@@ -32,7 +32,7 @@ class _DropdownMenuItemDemoState extends State {
dropdown1Value = newValue;
});
},
- items: ['One', 'Two', 'Free', 'Four'].map>((String value) {
+ items: ['One', 'Two', 'Three', 'Four'].map>((String value) {
return DropdownMenuItem(
value: value,
child: Text(value),
@@ -53,7 +53,7 @@ class _DropdownMenuItemDemoState extends State {
dropdown2Value = newValue;
});
},
- items: ['One', 'Two', 'Free', 'Four'].map>((String value) {
+ items: ['One', 'Two', 'Three', 'Four'].map>((String value) {
return DropdownMenuItem(
value: value,
child: Text(value),
@@ -74,7 +74,7 @@ class _DropdownMenuItemDemoState extends State {
});
},
items: [
- 'One', 'Two', 'Free', 'Four', 'Can', 'I', 'Have', 'A', 'Little',
+ 'One', 'Two', 'Three', 'Four', 'Can', 'I', 'Have', 'A', 'Little',
'Bit', 'More', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten'
]
.map>((String value) {
diff --git a/lib/widgets/elements/Form/Slider/Slider/demo.dart b/lib/widgets/elements/Form/Slider/Slider/demo.dart
index d2719b40..9e596828 100644
--- a/lib/widgets/elements/Form/Slider/Slider/demo.dart
+++ b/lib/widgets/elements/Form/Slider/Slider/demo.dart
@@ -14,7 +14,7 @@ class SliderDemo extends StatefulWidget {
class _Demo extends State {
double value = 0.0;
-
+ @override
Widget build(BuildContext context) {
return Slider(
value: value,
@@ -42,7 +42,7 @@ class SliderThemeDemo extends StatefulWidget {
class _SliderThemeDemo extends State {
double value = 0.0;
-
+ @override
Widget build(BuildContext context) {
return Container(
child: SliderTheme(
diff --git a/lib/widgets/elements/Form/Slider/Slider/index.dart b/lib/widgets/elements/Form/Slider/Slider/index.dart
index 9054a841..9862e916 100644
--- a/lib/widgets/elements/Form/Slider/Slider/index.dart
+++ b/lib/widgets/elements/Form/Slider/Slider/index.dart
@@ -75,7 +75,7 @@ class Demo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'Slider',
diff --git a/lib/widgets/elements/Form/Slider/SliderTheme/demo.dart b/lib/widgets/elements/Form/Slider/SliderTheme/demo.dart
index b88e3297..babb65c5 100644
--- a/lib/widgets/elements/Form/Slider/SliderTheme/demo.dart
+++ b/lib/widgets/elements/Form/Slider/SliderTheme/demo.dart
@@ -14,6 +14,7 @@ class SliderThemeDemo extends StatefulWidget {
class _SliderThemeDemo extends State {
double value = 0.0;
+ @override
Widget build(BuildContext context) {
return Container(
child: SliderTheme(
diff --git a/lib/widgets/elements/Form/Slider/SliderTheme/index.dart b/lib/widgets/elements/Form/Slider/SliderTheme/index.dart
index 93e0e88f..8b8e8b2a 100644
--- a/lib/widgets/elements/Form/Slider/SliderTheme/index.dart
+++ b/lib/widgets/elements/Form/Slider/SliderTheme/index.dart
@@ -59,7 +59,7 @@ class Demo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'SliderTheme',
diff --git a/lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart b/lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart
index b88e3297..babb65c5 100644
--- a/lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart
+++ b/lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart
@@ -14,6 +14,7 @@ class SliderThemeDemo extends StatefulWidget {
class _SliderThemeDemo extends State {
double value = 0.0;
+ @override
Widget build(BuildContext context) {
return Container(
child: SliderTheme(
diff --git a/lib/widgets/elements/Form/Slider/SliderThemeData/index.dart b/lib/widgets/elements/Form/Slider/SliderThemeData/index.dart
index 682c492f..b28e578a 100644
--- a/lib/widgets/elements/Form/Slider/SliderThemeData/index.dart
+++ b/lib/widgets/elements/Form/Slider/SliderThemeData/index.dart
@@ -33,6 +33,7 @@ class Demo extends StatefulWidget {
class _Demo extends State {
Color c = CupertinoColors.activeBlue;
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'SliderThemeData',
diff --git a/lib/widgets/elements/Form/Switch/Switch/demo.dart b/lib/widgets/elements/Form/Switch/Switch/demo.dart
index d5de396b..a575b718 100644
--- a/lib/widgets/elements/Form/Switch/Switch/demo.dart
+++ b/lib/widgets/elements/Form/Switch/Switch/demo.dart
@@ -13,6 +13,7 @@ class SwitchDemo extends StatefulWidget {
class _Demo extends State {
bool check = false;
+ @override
Widget build(BuildContext context) {
return Switch(
value: this.check,
@@ -31,6 +32,7 @@ class SwitchHighDemo extends StatefulWidget {
class _SwitchHighDemo extends State {
bool check = false;
+ @override
Widget build(BuildContext context) {
return Switch.adaptive(
value: this.check,
@@ -51,6 +53,7 @@ class SwitchTypesDemo extends StatefulWidget {
class _SwitchTypesDemo extends State {
bool check = false;
+ @override
Widget build(BuildContext context) {
return Switch(
value: this.check,
diff --git a/lib/widgets/elements/Form/Switch/Switch/index.dart b/lib/widgets/elements/Form/Switch/Switch/index.dart
index cad5392a..c7ce8dff 100644
--- a/lib/widgets/elements/Form/Switch/Switch/index.dart
+++ b/lib/widgets/elements/Form/Switch/Switch/index.dart
@@ -52,7 +52,7 @@ class Demo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'Switch',
diff --git a/lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart b/lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart
index 138312a9..57b21ea1 100644
--- a/lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart
+++ b/lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart
@@ -13,6 +13,7 @@ class SwitchListTileDemo extends StatefulWidget {
class _Demo extends State {
bool _lights = false;
+ @override
Widget build(BuildContext context) {
return SwitchListTile(
title: const Text('Lights'),
diff --git a/lib/widgets/elements/Form/Switch/SwitchListTile/index.dart b/lib/widgets/elements/Form/Switch/SwitchListTile/index.dart
index d5adef0d..bc4adbcb 100644
--- a/lib/widgets/elements/Form/Switch/SwitchListTile/index.dart
+++ b/lib/widgets/elements/Form/Switch/SwitchListTile/index.dart
@@ -28,7 +28,7 @@ class Demo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'SwitchListTile',
diff --git a/lib/widgets/elements/Form/Text/RichText/demo.dart b/lib/widgets/elements/Form/Text/RichText/demo.dart
index c4f12666..8d8705ae 100644
--- a/lib/widgets/elements/Form/Text/RichText/demo.dart
+++ b/lib/widgets/elements/Form/Text/RichText/demo.dart
@@ -12,7 +12,7 @@ class RichTextDemo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return Container(
color: Color(0xff000000),
diff --git a/lib/widgets/elements/Form/Text/RichText/index.dart b/lib/widgets/elements/Form/Text/RichText/index.dart
index 374a793a..b5bb5be8 100644
--- a/lib/widgets/elements/Form/Text/RichText/index.dart
+++ b/lib/widgets/elements/Form/Text/RichText/index.dart
@@ -25,7 +25,7 @@ class Demo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: 'Rich Text',
diff --git a/lib/widgets/elements/Form/Text/Text/demo.dart b/lib/widgets/elements/Form/Text/Text/demo.dart
index f197078d..505b5d09 100644
--- a/lib/widgets/elements/Form/Text/Text/demo.dart
+++ b/lib/widgets/elements/Form/Text/Text/demo.dart
@@ -15,7 +15,7 @@ class TextDemo extends StatefulWidget {
class _Demo extends State {
int index = 0;
Duration timer = new Duration(minutes: 50);
-
+ @override
Widget build(BuildContext context) {
return Text("i'm a text");
}
diff --git a/lib/widgets/elements/Form/Text/Text/index.dart b/lib/widgets/elements/Form/Text/Text/index.dart
index ea6db457..4c6586a7 100644
--- a/lib/widgets/elements/Form/Text/Text/index.dart
+++ b/lib/widgets/elements/Form/Text/Text/index.dart
@@ -35,6 +35,7 @@ class _Demo extends State {
onButtonTap() {
}
+ @override
Widget build(BuildContext context) {
return WidgetDemo(
title: "Text",
diff --git a/lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart b/lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart
index 04433dd5..10c01ad6 100644
--- a/lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart
@@ -70,7 +70,7 @@ class _CupertinoIconsFullDefault extends State {
}
}
}
-
+ @override
Widget build(BuildContext context) {
return
Align(
diff --git a/lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart b/lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart
index 7873228b..aa62be92 100644
--- a/lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart
@@ -82,6 +82,7 @@ class _CupertinoNavigationBarFullDefault extends State {
);
}
+ @override
Widget build(BuildContext context) {
return SizedBox(
height: MediaQuery.of(context).size.height/1.5,
diff --git a/lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart b/lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart
index e10d6e8d..35abb32e 100644
--- a/lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart
@@ -13,7 +13,7 @@ class CupertinoScrollbarDemo extends StatefulWidget {
}
class _Demo extends State {
-
+ @override
Widget build(BuildContext context) {
return Column(
children: [
@@ -47,7 +47,7 @@ class NoCupertinoScrollbarDemo extends StatefulWidget {
}
class _NoCupertinoScrollbarDemo extends State {
-
+ @override
Widget build(BuildContext context) {
return Column(
children: [
diff --git a/lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart b/lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart
index c7f2f87b..20aeac97 100644
--- a/lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart
@@ -8,6 +8,7 @@ class CupertinoSegmentedControlDemo extends StatefulWidget {
class _Demo extends State {
String value = 'a';
+ @override
Widget build(BuildContext context) {
return CupertinoSegmentedControl(
onValueChanged: (v) {
diff --git a/lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart b/lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart
index fe52c12f..1ddded71 100644
--- a/lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart
@@ -14,6 +14,7 @@ class CupertinoSliderDemo extends StatefulWidget {
class _Demo extends State {
double value = 0.0;
+ @override
Widget build(BuildContext context) {
return CupertinoSlider(
value: value,//实际进度的位置
diff --git a/lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart b/lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart
index 101c8aee..bbb27bd5 100644
--- a/lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart
@@ -14,6 +14,7 @@ class CupertinoSliverNavigationBarDemo extends StatefulWidget {
class _Demo extends State {
double value = 0.0;
+ @override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: DecoratedBox(
diff --git a/lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart b/lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart
index 8d0048f5..d677dd0a 100644
--- a/lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart
@@ -14,6 +14,7 @@ class CupertinoSwitchDemo extends StatefulWidget {
class _Demo extends State {
bool _lights = false;
+ @override
Widget build(BuildContext context) {
return MergeSemantics(
child: ListTile(
diff --git a/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart
index 50845fbd..c6794121 100644
--- a/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart
@@ -20,6 +20,7 @@ class _Demo extends State {
index = _index;
});
}
+ @override
Widget build(BuildContext context) {
return Container(
height: 500,
diff --git a/lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart
index ae508eb0..fde03721 100644
--- a/lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart
@@ -20,6 +20,7 @@ class _Demo extends State {
index = _index;
});
}
+ @override
Widget build(BuildContext context) {
return SizedBox(
height: 500,
diff --git a/lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart
index 4e549162..a0b61b08 100644
--- a/lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart
@@ -20,6 +20,7 @@ class _Demo extends State {
index = _index;
});
}
+ @override
Widget build(BuildContext context) {
return SizedBox(
height: 500,
diff --git a/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart
index 45b24c68..fdd8d3f1 100644
--- a/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart
+++ b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart
@@ -39,7 +39,7 @@ class _Demo extends State {
),
);
}
-
+ @override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
diff --git a/pubspec.lock b/pubspec.lock
index 262fc929..4cea4a49 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -118,13 +118,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.1"
- flutter_markdown:
+ flutter_downloader:
dependency: "direct main"
description:
- path: "../flutter_markdown"
- relative: true
- source: path
- version: "0.2.0"
+ name: flutter_downloader
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.7"
flutter_spinkit:
dependency: "direct main"
description:
@@ -180,7 +180,7 @@ packages:
source: hosted
version: "1.0.7"
markdown:
- dependency: transitive
+ dependency: "direct main"
description:
name: markdown
url: "https://pub.dartlang.org"
@@ -194,14 +194,28 @@ packages:
source: hosted
version: "0.12.5"
meta:
- dependency: transitive
+ dependency: "direct main"
description:
name: meta
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
+ dependency: "direct main"
description:
name: path
url: "https://pub.dartlang.org"
@@ -221,6 +235,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.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:
@@ -276,7 +297,7 @@ packages:
source: hosted
version: "2.0.0"
string_scanner:
- dependency: transitive
+ dependency: "direct main"
description:
name: string_scanner
url: "https://pub.dartlang.org"
diff --git a/pubspec.yaml b/pubspec.yaml
index 39c04260..637060d1 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.1.0 <3.0.0"
@@ -27,7 +27,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
@@ -44,6 +43,11 @@ dependencies:
meta: ^1.0.5
string_scanner: ^1.0.0
path: ^1.5.1
+ 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: