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: