Showing
16 changed files
with
466 additions
and
483 deletions
| @@ -4,7 +4,7 @@ source 'https://github.com/CocoaPods/Specs.git' | @@ -4,7 +4,7 @@ source 'https://github.com/CocoaPods/Specs.git' | ||
| 4 | # source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' | 4 | # source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' |
| 5 | # source 'https://cdn.cocoapods.org/' | 5 | # source 'https://cdn.cocoapods.org/' |
| 6 | 6 | ||
| 7 | -platform :ios, '9.0' | 7 | +platform :ios, '11.0' |
| 8 | 8 | ||
| 9 | 9 | ||
| 10 | 10 |
| @@ -255,7 +255,7 @@ SPEC CHECKSUMS: | @@ -255,7 +255,7 @@ SPEC CHECKSUMS: | ||
| 255 | core_location_fluttify: 9466a411ea7d22c6349c7e6a767ae4623f01eb1d | 255 | core_location_fluttify: 9466a411ea7d22c6349c7e6a767ae4623f01eb1d |
| 256 | device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 | 256 | device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 |
| 257 | easy_contact_picker: 9ab9dc70e8ddde6e76a19ffc482d7bf899868730 | 257 | easy_contact_picker: 9ab9dc70e8ddde6e76a19ffc482d7bf899868730 |
| 258 | - Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a | 258 | + Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 |
| 259 | flutter_app_badger: b87fc231847b03b92ce1412aa351842e7e97932f | 259 | flutter_app_badger: b87fc231847b03b92ce1412aa351842e7e97932f |
| 260 | flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc | 260 | flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc |
| 261 | flutter_bugly: c9800f4d5bc5bdc27ffdde3417a26ba44266e0c3 | 261 | flutter_bugly: c9800f4d5bc5bdc27ffdde3417a26ba44266e0c3 |
| @@ -289,6 +289,6 @@ SPEC CHECKSUMS: | @@ -289,6 +289,6 @@ SPEC CHECKSUMS: | ||
| 289 | wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f | 289 | wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f |
| 290 | webview_flutter: 3603125dfd3bcbc9d8d418c3f80aeecf331c068b | 290 | webview_flutter: 3603125dfd3bcbc9d8d418c3f80aeecf331c068b |
| 291 | 291 | ||
| 292 | -PODFILE CHECKSUM: 1574ae4cc03174899add0135a43cdaf8019bd5fd | 292 | +PODFILE CHECKSUM: 583d0874d9843cb84ef3a723537d644f42b3ebab |
| 293 | 293 | ||
| 294 | COCOAPODS: 1.11.3 | 294 | COCOAPODS: 1.11.3 |
| @@ -467,7 +467,7 @@ | @@ -467,7 +467,7 @@ | ||
| 467 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | 467 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| 468 | GCC_WARN_UNUSED_FUNCTION = YES; | 468 | GCC_WARN_UNUSED_FUNCTION = YES; |
| 469 | GCC_WARN_UNUSED_VARIABLE = YES; | 469 | GCC_WARN_UNUSED_VARIABLE = YES; |
| 470 | - IPHONEOS_DEPLOYMENT_TARGET = 9.0; | 470 | + IPHONEOS_DEPLOYMENT_TARGET = 11.0; |
| 471 | MTL_ENABLE_DEBUG_INFO = NO; | 471 | MTL_ENABLE_DEBUG_INFO = NO; |
| 472 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; | 472 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; |
| 473 | SDKROOT = iphoneos; | 473 | SDKROOT = iphoneos; |
| @@ -561,7 +561,7 @@ | @@ -561,7 +561,7 @@ | ||
| 561 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | 561 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| 562 | GCC_WARN_UNUSED_FUNCTION = YES; | 562 | GCC_WARN_UNUSED_FUNCTION = YES; |
| 563 | GCC_WARN_UNUSED_VARIABLE = YES; | 563 | GCC_WARN_UNUSED_VARIABLE = YES; |
| 564 | - IPHONEOS_DEPLOYMENT_TARGET = 9.0; | 564 | + IPHONEOS_DEPLOYMENT_TARGET = 11.0; |
| 565 | MTL_ENABLE_DEBUG_INFO = YES; | 565 | MTL_ENABLE_DEBUG_INFO = YES; |
| 566 | ONLY_ACTIVE_ARCH = YES; | 566 | ONLY_ACTIVE_ARCH = YES; |
| 567 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; | 567 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; |
| @@ -612,7 +612,7 @@ | @@ -612,7 +612,7 @@ | ||
| 612 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | 612 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| 613 | GCC_WARN_UNUSED_FUNCTION = YES; | 613 | GCC_WARN_UNUSED_FUNCTION = YES; |
| 614 | GCC_WARN_UNUSED_VARIABLE = YES; | 614 | GCC_WARN_UNUSED_VARIABLE = YES; |
| 615 | - IPHONEOS_DEPLOYMENT_TARGET = 9.0; | 615 | + IPHONEOS_DEPLOYMENT_TARGET = 11.0; |
| 616 | MTL_ENABLE_DEBUG_INFO = NO; | 616 | MTL_ENABLE_DEBUG_INFO = NO; |
| 617 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; | 617 | PROVISIONING_PROFILE_SPECIFIER = "Push Development Profile"; |
| 618 | SDKROOT = iphoneos; | 618 | SDKROOT = iphoneos; |
| @@ -636,7 +636,7 @@ | @@ -636,7 +636,7 @@ | ||
| 636 | CURRENT_PROJECT_VERSION = 393; | 636 | CURRENT_PROJECT_VERSION = 393; |
| 637 | DEVELOPMENT_TEAM = 8J59HM8B82; | 637 | DEVELOPMENT_TEAM = 8J59HM8B82; |
| 638 | ENABLE_BITCODE = NO; | 638 | ENABLE_BITCODE = NO; |
| 639 | - FLUTTER_BUILD_MODE = release; | 639 | + FLUTTER_BUILD_MODE = debug; |
| 640 | FRAMEWORK_SEARCH_PATHS = ( | 640 | FRAMEWORK_SEARCH_PATHS = ( |
| 641 | "$(inherited)", | 641 | "$(inherited)", |
| 642 | "$(PROJECT_DIR)/Flutter", | 642 | "$(PROJECT_DIR)/Flutter", |
| @@ -92,5 +92,7 @@ | @@ -92,5 +92,7 @@ | ||
| 92 | <string>INUIMFK21WGH</string> | 92 | <string>INUIMFK21WGH</string> |
| 93 | <key>io.flutter.embedded_views_preview</key> | 93 | <key>io.flutter.embedded_views_preview</key> |
| 94 | <string>YES</string> | 94 | <string>YES</string> |
| 95 | + <key>CADisableMinimumFrameDurationOnPhone</key> | ||
| 96 | + <true/> | ||
| 95 | </dict> | 97 | </dict> |
| 96 | </plist> | 98 | </plist> |
No preview for this file type
No preview for this file type
| @@ -2433,7 +2433,7 @@ class InvicationPageState extends State<InvicationPage> | @@ -2433,7 +2433,7 @@ class InvicationPageState extends State<InvicationPage> | ||
| 2433 | child: Container( | 2433 | child: Container( |
| 2434 | child: Stack( | 2434 | child: Stack( |
| 2435 | alignment: Alignment.bottomCenter, | 2435 | alignment: Alignment.bottomCenter, |
| 2436 | - overflow: Overflow.visible, | 2436 | + // overflow: Overflow.visible, |
| 2437 | children: [ | 2437 | children: [ |
| 2438 | Container( | 2438 | Container( |
| 2439 | margin: EdgeInsets.only(bottom: ScreenUtil().setWidth(18)), | 2439 | margin: EdgeInsets.only(bottom: ScreenUtil().setWidth(18)), |
| @@ -2597,7 +2597,7 @@ class InvicationPageState extends State<InvicationPage> | @@ -2597,7 +2597,7 @@ class InvicationPageState extends State<InvicationPage> | ||
| 2597 | child: Container( | 2597 | child: Container( |
| 2598 | child: Stack( | 2598 | child: Stack( |
| 2599 | alignment: Alignment.bottomCenter, | 2599 | alignment: Alignment.bottomCenter, |
| 2600 | - overflow: Overflow.visible, | 2600 | + // overflow: Overflow.visible, |
| 2601 | children: [ | 2601 | children: [ |
| 2602 | Container( | 2602 | Container( |
| 2603 | margin: EdgeInsets.only(bottom: ScreenUtil().setWidth(18)), | 2603 | margin: EdgeInsets.only(bottom: ScreenUtil().setWidth(18)), |
| 1 | -import 'dart:async'; | ||
| 2 | - | ||
| 3 | -import 'package:device_info/device_info.dart'; | ||
| 4 | -import 'package:dio/dio.dart'; | ||
| 5 | -import 'package:flutter/material.dart'; | ||
| 6 | -import 'package:flutter_inappwebview/flutter_inappwebview.dart'; | ||
| 7 | -import 'package:one_key/net/dio_util.dart'; | ||
| 8 | -import 'package:one_key/res/colors.dart'; | ||
| 9 | -import 'package:one_key/utils/event_bus.dart'; | ||
| 10 | -import 'package:one_key/utils/utils.dart'; | ||
| 11 | -import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 12 | -import 'package:path_provider/path_provider.dart'; | ||
| 13 | -import 'package:permission_handler/permission_handler.dart'; | ||
| 14 | -import 'package:webview_flutter/webview_flutter.dart'; | ||
| 15 | - | ||
| 16 | -import 'dart:async'; | ||
| 17 | -import 'dart:convert'; | ||
| 18 | -import 'dart:io'; | ||
| 19 | - | ||
| 20 | -import 'package:flutter/material.dart'; | ||
| 21 | -import 'package:one_key/utils/event_bus.dart'; | ||
| 22 | -import 'package:one_key/widgets/app_bar.dart'; | ||
| 23 | -import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 24 | -import 'package:webview_flutter/webview_flutter.dart'; | 1 | +// import 'dart:async'; |
| 25 | 2 | ||
| 3 | +// import 'package:device_info/device_info.dart'; | ||
| 4 | +// import 'package:dio/dio.dart'; | ||
| 5 | +// import 'package:flutter/material.dart'; | ||
| 26 | // import 'package:flutter_inappwebview/flutter_inappwebview.dart'; | 6 | // import 'package:flutter_inappwebview/flutter_inappwebview.dart'; |
| 27 | -import 'package:url_launcher/url_launcher.dart'; | ||
| 28 | -import 'dart:collection'; | ||
| 29 | -// import 'package:open_file/open_file.dart'; | ||
| 30 | -// import 'package:flutter_downloader/flutter_downloader.dart'; | ||
| 31 | - | ||
| 32 | -class WebPage extends StatefulWidget { | ||
| 33 | - final String title; | ||
| 34 | - final String url; | ||
| 35 | - final bool need; | ||
| 36 | - | ||
| 37 | - const WebPage({Key key, this.title, this.url, this.need = false}) | ||
| 38 | - : super(key: key); | ||
| 39 | - @override | ||
| 40 | - _WebPageState createState() => _WebPageState(); | ||
| 41 | -} | 7 | +// import 'package:one_key/net/dio_util.dart'; |
| 8 | +// import 'package:one_key/res/colors.dart'; | ||
| 9 | +// import 'package:one_key/utils/event_bus.dart'; | ||
| 10 | +// import 'package:one_key/utils/utils.dart'; | ||
| 11 | +// import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 12 | +// import 'package:path_provider/path_provider.dart'; | ||
| 13 | +// import 'package:permission_handler/permission_handler.dart'; | ||
| 14 | +// import 'package:webview_flutter/webview_flutter.dart'; | ||
| 42 | 15 | ||
| 43 | -class _WebPageState extends State<WebPage> { | ||
| 44 | - final GlobalKey webViewKey = GlobalKey(); | 16 | +// import 'dart:async'; |
| 17 | +// import 'dart:convert'; | ||
| 18 | +// import 'dart:io'; | ||
| 45 | 19 | ||
| 46 | - InAppWebViewController webViewController; | ||
| 47 | - InAppWebViewGroupOptions options = InAppWebViewGroupOptions( | ||
| 48 | - crossPlatform: InAppWebViewOptions( | ||
| 49 | - useShouldOverrideUrlLoading: true, | ||
| 50 | - useOnDownloadStart: true, | ||
| 51 | - mediaPlaybackRequiresUserGesture: false, | ||
| 52 | - ), | ||
| 53 | - android: AndroidInAppWebViewOptions( | ||
| 54 | - useHybridComposition: true, | ||
| 55 | - ), | ||
| 56 | - ios: IOSInAppWebViewOptions( | ||
| 57 | - allowsInlineMediaPlayback: true, | ||
| 58 | - )); | 20 | +// import 'package:flutter/material.dart'; |
| 21 | +// import 'package:one_key/utils/event_bus.dart'; | ||
| 22 | +// import 'package:one_key/widgets/app_bar.dart'; | ||
| 23 | +// import 'package:one_key/widgets/system_app_bar.dart'; | ||
| 24 | +// import 'package:webview_flutter/webview_flutter.dart'; | ||
| 59 | 25 | ||
| 60 | - PullToRefreshController pullToRefreshController; | ||
| 61 | - ContextMenu contextMenu; | ||
| 62 | - String url = ""; | ||
| 63 | - double progress = 0; | ||
| 64 | - final urlController = TextEditingController(); | ||
| 65 | - // Future<void> openFile(filePath) async { | ||
| 66 | - // final _result = await OpenFile.open(filePath); | ||
| 67 | - // print(_result.message); | 26 | +// // import 'package:flutter_inappwebview/flutter_inappwebview.dart'; |
| 27 | +// import 'package:url_launcher/url_launcher.dart'; | ||
| 28 | +// import 'dart:collection'; | ||
| 29 | +// // import 'package:open_file/open_file.dart'; | ||
| 30 | +// // import 'package:flutter_downloader/flutter_downloader.dart'; | ||
| 68 | 31 | ||
| 69 | - // // setState(() { | ||
| 70 | - // // _openResult = "type=${_result.type} message=${_result.message}"; | ||
| 71 | - // // }); | ||
| 72 | - // } | ||
| 73 | - | ||
| 74 | - @override | ||
| 75 | - void initState() { | ||
| 76 | - super.initState(); | 32 | +// class WebPage extends StatefulWidget { |
| 33 | +// final String title; | ||
| 34 | +// final String url; | ||
| 35 | +// final bool need; | ||
| 77 | 36 | ||
| 78 | - // Enable hybrid composition. | ||
| 79 | - _init(); | ||
| 80 | - } | 37 | +// const WebPage({Key key, this.title, this.url, this.need = false}) |
| 38 | +// : super(key: key); | ||
| 39 | +// @override | ||
| 40 | +// _WebPageState createState() => _WebPageState(); | ||
| 41 | +// } | ||
| 81 | 42 | ||
| 82 | - Future<bool> _checkPermission() async { | ||
| 83 | - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); | ||
| 84 | - AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; | ||
| 85 | - if (Platform.isAndroid && androidInfo.version.sdkInt <= 28) { | ||
| 86 | - final status = await Permission.storage.status; | ||
| 87 | - if (status != PermissionStatus.granted) { | ||
| 88 | - final result = await Permission.storage.request(); | ||
| 89 | - if (result == PermissionStatus.granted) { | ||
| 90 | - return true; | ||
| 91 | - } | ||
| 92 | - } else { | ||
| 93 | - return true; | ||
| 94 | - } | ||
| 95 | - } else { | ||
| 96 | - return true; | ||
| 97 | - } | ||
| 98 | - return false; | ||
| 99 | - } | 43 | +// class _WebPageState extends State<WebPage> { |
| 44 | +// final GlobalKey webViewKey = GlobalKey(); | ||
| 100 | 45 | ||
| 101 | - Future<bool> checkPermissionStorage() async { | ||
| 102 | - var status = await Permission.storage.status; | ||
| 103 | - if (!status.isGranted) { | ||
| 104 | - status = await Permission.storage.request(); | ||
| 105 | - if (status.isGranted) { | ||
| 106 | - return true; | ||
| 107 | - } | ||
| 108 | - } else { | ||
| 109 | - return true; | ||
| 110 | - } | ||
| 111 | - return false; | ||
| 112 | - } | 46 | +// InAppWebViewController webViewController; |
| 47 | +// InAppWebViewGroupOptions options = InAppWebViewGroupOptions( | ||
| 48 | +// crossPlatform: InAppWebViewOptions( | ||
| 49 | +// useShouldOverrideUrlLoading: true, | ||
| 50 | +// useOnDownloadStart: true, | ||
| 51 | +// mediaPlaybackRequiresUserGesture: false, | ||
| 52 | +// ), | ||
| 53 | +// android: AndroidInAppWebViewOptions( | ||
| 54 | +// useHybridComposition: true, | ||
| 55 | +// ), | ||
| 56 | +// ios: IOSInAppWebViewOptions( | ||
| 57 | +// allowsInlineMediaPlayback: true, | ||
| 58 | +// )); | ||
| 113 | 59 | ||
| 114 | - _init() async { | ||
| 115 | - // WidgetsFlutterBinding.ensureInitialized(); | ||
| 116 | - // await FlutterDownloader.initialize(debug: true); | ||
| 117 | - if (Platform.isAndroid) { | ||
| 118 | - await AndroidInAppWebViewController.setWebContentsDebuggingEnabled(true); | 60 | +// // PullToRefreshController pullToRefreshController; |
| 61 | +// ContextMenu contextMenu; | ||
| 62 | +// String url = ""; | ||
| 63 | +// double progress = 0; | ||
| 64 | +// final urlController = TextEditingController(); | ||
| 65 | +// // Future<void> openFile(filePath) async { | ||
| 66 | +// // final _result = await OpenFile.open(filePath); | ||
| 67 | +// // print(_result.message); | ||
| 119 | 68 | ||
| 120 | - var swAvailable = await AndroidWebViewFeature.isFeatureSupported( | ||
| 121 | - AndroidWebViewFeature.SERVICE_WORKER_BASIC_USAGE); | ||
| 122 | - var swInterceptAvailable = await AndroidWebViewFeature.isFeatureSupported( | ||
| 123 | - AndroidWebViewFeature.SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST); | 69 | +// // // setState(() { |
| 70 | +// // // _openResult = "type=${_result.type} message=${_result.message}"; | ||
| 71 | +// // // }); | ||
| 72 | +// // } | ||
| 124 | 73 | ||
| 125 | - if (swAvailable && swInterceptAvailable) { | ||
| 126 | - AndroidServiceWorkerController serviceWorkerController = | ||
| 127 | - AndroidServiceWorkerController.instance(); | 74 | +// @override |
| 75 | +// void initState() { | ||
| 76 | +// super.initState(); | ||
| 128 | 77 | ||
| 129 | - serviceWorkerController.serviceWorkerClient = | ||
| 130 | - AndroidServiceWorkerClient( | ||
| 131 | - shouldInterceptRequest: (request) async { | ||
| 132 | - print(request); | ||
| 133 | - return null; | ||
| 134 | - }, | ||
| 135 | - ); | ||
| 136 | - } | ||
| 137 | - } | ||
| 138 | - // await FlutterDownloader.initialize( | ||
| 139 | - // debug: true // optional: set false to disable printing logs to console | ||
| 140 | - // ); | ||
| 141 | - // await Permission.storage.request(); | ||
| 142 | - } | 78 | +// // Enable hybrid composition. |
| 79 | +// _init(); | ||
| 80 | +// } | ||
| 143 | 81 | ||
| 144 | - @override | ||
| 145 | - Widget build(BuildContext context) { | ||
| 146 | - return Scaffold( | ||
| 147 | - // We're using a Builder here so we have a context that is below the Scaffold | ||
| 148 | - // to allow calling Scaffold.of(context) so we can show a snackbar. | ||
| 149 | - appBar: SystemAppBar( | ||
| 150 | - widget.title, | ||
| 151 | - onTap: () { | ||
| 152 | - if (widget.need) { | ||
| 153 | - Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 154 | - } | ||
| 155 | - Navigator.of(context).pop(); | ||
| 156 | - }, | ||
| 157 | - ), | ||
| 158 | - body: WillPopScope( | ||
| 159 | - onWillPop: () async { | ||
| 160 | - if (widget.need) { | ||
| 161 | - Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 162 | - } | ||
| 163 | - return true; | ||
| 164 | - }, | ||
| 165 | - child: Column( | ||
| 166 | - children: [ | ||
| 167 | - Expanded( | ||
| 168 | - child: InAppWebView( | ||
| 169 | - key: webViewKey, | ||
| 170 | - // contextMenu: contextMenu, | ||
| 171 | - initialUrlRequest: URLRequest( | ||
| 172 | - url: Uri.parse("http://colorcun.com/privacy1.html")), | ||
| 173 | - // initialFile: "assets/index.html", | ||
| 174 | - initialUserScripts: UnmodifiableListView<UserScript>([]), | ||
| 175 | - initialOptions: options, | ||
| 176 | - pullToRefreshController: pullToRefreshController, | ||
| 177 | - onWebViewCreated: (controller) { | ||
| 178 | - webViewController = controller; | ||
| 179 | - }, | ||
| 180 | - onLoadStart: (controller, url) { | ||
| 181 | - setState(() { | ||
| 182 | - this.url = url.toString(); | ||
| 183 | - urlController.text = this.url; | ||
| 184 | - }); | ||
| 185 | - }, | ||
| 186 | - androidOnPermissionRequest: | ||
| 187 | - (controller, origin, resources) async { | ||
| 188 | - return PermissionRequestResponse( | ||
| 189 | - resources: resources, | ||
| 190 | - action: PermissionRequestResponseAction.GRANT); | ||
| 191 | - }, | ||
| 192 | - shouldOverrideUrlLoading: | ||
| 193 | - (controller, navigationAction) async { | ||
| 194 | - var uri = navigationAction.request.url; | 82 | +// Future<bool> _checkPermission() async { |
| 83 | +// DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); | ||
| 84 | +// AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; | ||
| 85 | +// if (Platform.isAndroid && androidInfo.version.sdkInt <= 28) { | ||
| 86 | +// final status = await Permission.storage.status; | ||
| 87 | +// if (status != PermissionStatus.granted) { | ||
| 88 | +// final result = await Permission.storage.request(); | ||
| 89 | +// if (result == PermissionStatus.granted) { | ||
| 90 | +// return true; | ||
| 91 | +// } | ||
| 92 | +// } else { | ||
| 93 | +// return true; | ||
| 94 | +// } | ||
| 95 | +// } else { | ||
| 96 | +// return true; | ||
| 97 | +// } | ||
| 98 | +// return false; | ||
| 99 | +// } | ||
| 195 | 100 | ||
| 196 | - if (![ | ||
| 197 | - "http", | ||
| 198 | - "https", | ||
| 199 | - "file", | ||
| 200 | - "chrome", | ||
| 201 | - "data", | ||
| 202 | - "javascript", | ||
| 203 | - "about" | ||
| 204 | - ].contains(uri.scheme)) { | ||
| 205 | - if (await canLaunch(url)) { | ||
| 206 | - // Launch the App | ||
| 207 | - await launch( | ||
| 208 | - url, | ||
| 209 | - ); | ||
| 210 | - // and cancel the request | ||
| 211 | - return NavigationActionPolicy.CANCEL; | ||
| 212 | - } | ||
| 213 | - } | 101 | +// Future<bool> checkPermissionStorage() async { |
| 102 | +// var status = await Permission.storage.status; | ||
| 103 | +// if (!status.isGranted) { | ||
| 104 | +// status = await Permission.storage.request(); | ||
| 105 | +// if (status.isGranted) { | ||
| 106 | +// return true; | ||
| 107 | +// } | ||
| 108 | +// } else { | ||
| 109 | +// return true; | ||
| 110 | +// } | ||
| 111 | +// return false; | ||
| 112 | +// } | ||
| 214 | 113 | ||
| 215 | - return NavigationActionPolicy.ALLOW; | ||
| 216 | - }, | ||
| 217 | - onLoadStop: (controller, url) async { | ||
| 218 | - pullToRefreshController.endRefreshing(); | ||
| 219 | - setState(() { | ||
| 220 | - this.url = url.toString(); | ||
| 221 | - urlController.text = this.url; | ||
| 222 | - }); | ||
| 223 | - }, | ||
| 224 | - onLoadError: (controller, url, code, message) { | ||
| 225 | - pullToRefreshController.endRefreshing(); | ||
| 226 | - }, | ||
| 227 | - onProgressChanged: (controller, progress) { | ||
| 228 | - if (progress == 100) { | ||
| 229 | - pullToRefreshController.endRefreshing(); | ||
| 230 | - } | ||
| 231 | - setState(() { | ||
| 232 | - this.progress = progress / 100; | ||
| 233 | - urlController.text = this.url; | ||
| 234 | - }); | ||
| 235 | - }, | ||
| 236 | - onUpdateVisitedHistory: (controller, url, androidIsReload) { | ||
| 237 | - setState(() { | ||
| 238 | - this.url = url.toString(); | ||
| 239 | - urlController.text = this.url; | ||
| 240 | - }); | ||
| 241 | - }, | ||
| 242 | - onConsoleMessage: (controller, consoleMessage) { | ||
| 243 | - print(consoleMessage); | ||
| 244 | - }, | ||
| 245 | - onDownloadStart: (controller, url) async { | ||
| 246 | - print("onDownloadStart $url"); | ||
| 247 | - Utils.showToast('开始下载...'); | ||
| 248 | - // final taskId = await FlutterDownloader.enqueue( | ||
| 249 | - // url: url.toString(), | ||
| 250 | - // savedDir: (await getExternalStorageDirectory()).path, | ||
| 251 | - // showNotification: | ||
| 252 | - // true, // show download progress in status bar (for Android) | ||
| 253 | - // openFileFromNotification: | ||
| 254 | - // true, // click on notification to open downloaded file (for Android) | ||
| 255 | - // ); | ||
| 256 | - final dir = await getExternalStorageDirectory(); | ||
| 257 | - String savePath = dir.path + "/one_key"; | 114 | +// _init() async { |
| 115 | +// // WidgetsFlutterBinding.ensureInitialized(); | ||
| 116 | +// // await FlutterDownloader.initialize(debug: true); | ||
| 117 | +// if (Platform.isAndroid) { | ||
| 118 | +// await AndroidInAppWebViewController.setWebContentsDebuggingEnabled(true); | ||
| 258 | 119 | ||
| 259 | - Directory directory = new Directory(savePath); | ||
| 260 | - if (directory.existsSync()) { | ||
| 261 | - //删除历史apk | ||
| 262 | - final List<FileSystemEntity> files = directory.listSync(); | ||
| 263 | - for (FileSystemEntity file in files) { | ||
| 264 | - file.deleteSync(); | ||
| 265 | - } | ||
| 266 | - } | ||
| 267 | - DioUtil().download(url.toString(), savePath, | ||
| 268 | - onProgress: (received, total) { | ||
| 269 | - // if (_progress != 100) { | ||
| 270 | - // int progress = ((received / total) * 100).round(); | ||
| 271 | - // _progress = progress; | ||
| 272 | - // _setState(() {}); | ||
| 273 | - // } | ||
| 274 | - if (received == total) { | ||
| 275 | - print('object'); | ||
| 276 | - Utils.showToast('文件已保存在${savePath}'); | ||
| 277 | - // openFile(savePath); | ||
| 278 | - //下载完成 | ||
| 279 | - // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 280 | - } | ||
| 281 | - }); | ||
| 282 | - // }, | ||
| 283 | - // DioUtil().download(url.toString(), | ||
| 284 | - // (await getExternalStorageDirectory()).path, | ||
| 285 | - // onProgress: (received, total) { | ||
| 286 | - // // if (_progress != 100) { | ||
| 287 | - // // int progress = ((received / total) * 100).round(); | ||
| 288 | - // // _progress = progress; | ||
| 289 | - // // _setState(() {}); | ||
| 290 | - // // } | ||
| 291 | - // if (received == total) { | ||
| 292 | - // //下载完成 | ||
| 293 | - // // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 294 | - // } | ||
| 295 | - // }); | ||
| 296 | - }, | ||
| 297 | - )) | ||
| 298 | - ], | ||
| 299 | - ) | ||
| 300 | - // Builder(builder: (BuildContext context) { | ||
| 301 | - // return WebView( | ||
| 302 | - // initialUrl: "http://colorcun.com/privacy1.html", | ||
| 303 | - // javascriptMode: JavascriptMode.unrestricted, | ||
| 304 | - // onWebViewCreated: (WebViewController webViewController) { | ||
| 305 | - // _controller.complete(webViewController); | ||
| 306 | - // }, | ||
| 307 | - // // TODO(iskakaushik): Remove this when collection literals makes it to stable. | ||
| 308 | - // // ignore: prefer_collection_literals | ||
| 309 | - // javascriptChannels: <JavascriptChannel>[ | ||
| 310 | - // _toasterJavascriptChannel(context), | ||
| 311 | - // ].toSet(), | ||
| 312 | - // navigationDelegate: (NavigationRequest request) { | ||
| 313 | - // if (request.url.startsWith('https://www.youtube.com/')) { | ||
| 314 | - // print('blocking navigation to $request}'); | ||
| 315 | - // return NavigationDecision.prevent; | ||
| 316 | - // } | ||
| 317 | - // print('allowing navigation to $request'); | ||
| 318 | - // return NavigationDecision.navigate; | ||
| 319 | - // }, | ||
| 320 | - // onPageStarted: (String url) { | ||
| 321 | - // print('Page started loading: $url'); | ||
| 322 | - // }, | ||
| 323 | - // onPageFinished: (String url) async { | ||
| 324 | - // print('Page finished loading: $url'); | ||
| 325 | - // // showDownloadProgress(context); | ||
| 326 | - // final dir = await getExternalStorageDirectory(); | ||
| 327 | - // String savePath = dir.path + "/one_key"; | ||
| 328 | - // DioUtil().download(url, savePath, | ||
| 329 | - // onProgress: (received, total) { | ||
| 330 | - // // if (_progress != 100) { | ||
| 331 | - // // int progress = ((received / total) * 100).round(); | ||
| 332 | - // // _progress = progress; | ||
| 333 | - // // _setState(() {}); | ||
| 334 | - // // } | ||
| 335 | - // if (received == total) { | ||
| 336 | - // print('object'); | ||
| 337 | - // //下载完成 | ||
| 338 | - // // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 339 | - // } | ||
| 340 | - // }); | ||
| 341 | - // }, | ||
| 342 | - // gestureNavigationEnabled: true, | ||
| 343 | - // ); | ||
| 344 | - // }), | ||
| 345 | - )); | ||
| 346 | - } | 120 | +// var swAvailable = await AndroidWebViewFeature.isFeatureSupported( |
| 121 | +// AndroidWebViewFeature.SERVICE_WORKER_BASIC_USAGE); | ||
| 122 | +// var swInterceptAvailable = await AndroidWebViewFeature.isFeatureSupported( | ||
| 123 | +// AndroidWebViewFeature.SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST); | ||
| 347 | 124 | ||
| 348 | - // JavascriptChannel _toasterJavascriptChannel(BuildContext context) { | ||
| 349 | - // return JavascriptChannel( | ||
| 350 | - // name: 'Toaster', | ||
| 351 | - // onMessageReceived: (JavascriptMessage message) { | ||
| 352 | - // Scaffold.of(context).showSnackBar( | ||
| 353 | - // SnackBar(content: Text(message.message)), | ||
| 354 | - // ); | ||
| 355 | - // }); | ||
| 356 | - // } | ||
| 357 | -} | 125 | +// if (swAvailable && swInterceptAvailable) { |
| 126 | +// AndroidServiceWorkerController serviceWorkerController = | ||
| 127 | +// AndroidServiceWorkerController.instance(); | ||
| 358 | 128 | ||
| 359 | -// class WebPage extends StatelessWidget { | ||
| 360 | -// final String title; | ||
| 361 | -// final String url; | ||
| 362 | -// final bool need; | 129 | +// serviceWorkerController.serviceWorkerClient = |
| 130 | +// AndroidServiceWorkerClient( | ||
| 131 | +// shouldInterceptRequest: (request) async { | ||
| 132 | +// print(request); | ||
| 133 | +// return null; | ||
| 134 | +// }, | ||
| 135 | +// ); | ||
| 136 | +// } | ||
| 137 | +// } | ||
| 138 | +// // await FlutterDownloader.initialize( | ||
| 139 | +// // debug: true // optional: set false to disable printing logs to console | ||
| 140 | +// // ); | ||
| 141 | +// // await Permission.storage.request(); | ||
| 142 | +// } | ||
| 363 | 143 | ||
| 364 | -// const WebPage({Key key, this.title, this.url, this.need = false}) | ||
| 365 | -// : super(key: key); | ||
| 366 | // @override | 144 | // @override |
| 367 | // Widget build(BuildContext context) { | 145 | // Widget build(BuildContext context) { |
| 368 | -// final Completer<WebViewController> _controller = | ||
| 369 | -// Completer<WebViewController>(); | ||
| 370 | // return Scaffold( | 146 | // return Scaffold( |
| 371 | -// appBar: SystemAppBar(title, onTap: () { | ||
| 372 | -// if (need) { | ||
| 373 | -// Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 374 | -// } | ||
| 375 | -// Navigator.of(context).pop(); | ||
| 376 | -// }), | ||
| 377 | -// body: WillPopScope( | ||
| 378 | -// onWillPop: () async { | ||
| 379 | -// if (need) { | 147 | +// // We're using a Builder here so we have a context that is below the Scaffold |
| 148 | +// // to allow calling Scaffold.of(context) so we can show a snackbar. | ||
| 149 | +// appBar: SystemAppBar( | ||
| 150 | +// widget.title, | ||
| 151 | +// onTap: () { | ||
| 152 | +// if (widget.need) { | ||
| 380 | // Utils.changeStatusColor(color: MyColours.color_199095); | 153 | // Utils.changeStatusColor(color: MyColours.color_199095); |
| 381 | // } | 154 | // } |
| 382 | -// return true; | 155 | +// Navigator.of(context).pop(); |
| 383 | // }, | 156 | // }, |
| 384 | -// child: WebView( | ||
| 385 | -// initialUrl: "http://colorcun.com/privacy1.html", | ||
| 386 | -// javascriptMode: JavascriptMode.unrestricted, | ||
| 387 | -// onWebViewCreated: (WebViewController webViewController) { | ||
| 388 | -// // Loading.showLoading(context); | ||
| 389 | -// _controller.complete(webViewController); | ||
| 390 | -// }, | ||
| 391 | -// javascriptChannels: <JavascriptChannel>[ | ||
| 392 | -// _toasterJavascriptChannel(context), | ||
| 393 | -// ].toSet(), | ||
| 394 | -// navigationDelegate: (NavigationRequest request) { | ||
| 395 | -// if (request.url.startsWith('https://www.youtube.com/')) { | ||
| 396 | -// return NavigationDecision.prevent; | 157 | +// ), |
| 158 | +// body: WillPopScope( | ||
| 159 | +// onWillPop: () async { | ||
| 160 | +// if (widget.need) { | ||
| 161 | +// Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 397 | // } | 162 | // } |
| 398 | -// return NavigationDecision.navigate; | 163 | +// return true; |
| 399 | // }, | 164 | // }, |
| 400 | -// onPageStarted: (String url) {}, | ||
| 401 | -// onPageFinished: (String url) { | ||
| 402 | -// // Loading.hideLoading(context); | ||
| 403 | -// }, | ||
| 404 | -// gestureNavigationEnabled: true, | ||
| 405 | -// )), | ||
| 406 | -// ); | ||
| 407 | -// } | 165 | +// child: Column( |
| 166 | +// children: [ | ||
| 167 | +// Expanded( | ||
| 168 | +// child: InAppWebView( | ||
| 169 | +// key: webViewKey, | ||
| 170 | +// // contextMenu: contextMenu, | ||
| 171 | +// initialUrlRequest: URLRequest( | ||
| 172 | +// url: Uri.parse("http://colorcun.com/privacy1.html")), | ||
| 173 | +// // initialFile: "assets/index.html", | ||
| 174 | +// initialUserScripts: UnmodifiableListView<UserScript>([]), | ||
| 175 | +// initialOptions: options, | ||
| 176 | +// pullToRefreshController: pullToRefreshController, | ||
| 177 | +// onWebViewCreated: (controller) { | ||
| 178 | +// webViewController = controller; | ||
| 179 | +// }, | ||
| 180 | +// onLoadStart: (controller, url) { | ||
| 181 | +// setState(() { | ||
| 182 | +// this.url = url.toString(); | ||
| 183 | +// urlController.text = this.url; | ||
| 184 | +// }); | ||
| 185 | +// }, | ||
| 186 | +// androidOnPermissionRequest: | ||
| 187 | +// (controller, origin, resources) async { | ||
| 188 | +// return PermissionRequestResponse( | ||
| 189 | +// resources: resources, | ||
| 190 | +// action: PermissionRequestResponseAction.GRANT); | ||
| 191 | +// }, | ||
| 192 | +// shouldOverrideUrlLoading: | ||
| 193 | +// (controller, navigationAction) async { | ||
| 194 | +// var uri = navigationAction.request.url; | ||
| 195 | + | ||
| 196 | +// if (![ | ||
| 197 | +// "http", | ||
| 198 | +// "https", | ||
| 199 | +// "file", | ||
| 200 | +// "chrome", | ||
| 201 | +// "data", | ||
| 202 | +// "javascript", | ||
| 203 | +// "about" | ||
| 204 | +// ].contains(uri.scheme)) { | ||
| 205 | +// if (await canLaunch(url)) { | ||
| 206 | +// // Launch the App | ||
| 207 | +// await launch( | ||
| 208 | +// url, | ||
| 209 | +// ); | ||
| 210 | +// // and cancel the request | ||
| 211 | +// return NavigationActionPolicy.CANCEL; | ||
| 212 | +// } | ||
| 213 | +// } | ||
| 214 | + | ||
| 215 | +// return NavigationActionPolicy.ALLOW; | ||
| 216 | +// }, | ||
| 217 | +// onLoadStop: (controller, url) async { | ||
| 218 | +// pullToRefreshController.endRefreshing(); | ||
| 219 | +// setState(() { | ||
| 220 | +// this.url = url.toString(); | ||
| 221 | +// urlController.text = this.url; | ||
| 222 | +// }); | ||
| 223 | +// }, | ||
| 224 | +// onLoadError: (controller, url, code, message) { | ||
| 225 | +// pullToRefreshController.endRefreshing(); | ||
| 226 | +// }, | ||
| 227 | +// onProgressChanged: (controller, progress) { | ||
| 228 | +// if (progress == 100) { | ||
| 229 | +// pullToRefreshController.endRefreshing(); | ||
| 230 | +// } | ||
| 231 | +// setState(() { | ||
| 232 | +// this.progress = progress / 100; | ||
| 233 | +// urlController.text = this.url; | ||
| 234 | +// }); | ||
| 235 | +// }, | ||
| 236 | +// onUpdateVisitedHistory: (controller, url, androidIsReload) { | ||
| 237 | +// setState(() { | ||
| 238 | +// this.url = url.toString(); | ||
| 239 | +// urlController.text = this.url; | ||
| 240 | +// }); | ||
| 241 | +// }, | ||
| 242 | +// onConsoleMessage: (controller, consoleMessage) { | ||
| 243 | +// print(consoleMessage); | ||
| 244 | +// }, | ||
| 245 | +// onDownloadStart: (controller, url) async { | ||
| 246 | +// print("onDownloadStart $url"); | ||
| 247 | +// Utils.showToast('开始下载...'); | ||
| 248 | +// // final taskId = await FlutterDownloader.enqueue( | ||
| 249 | +// // url: url.toString(), | ||
| 250 | +// // savedDir: (await getExternalStorageDirectory()).path, | ||
| 251 | +// // showNotification: | ||
| 252 | +// // true, // show download progress in status bar (for Android) | ||
| 253 | +// // openFileFromNotification: | ||
| 254 | +// // true, // click on notification to open downloaded file (for Android) | ||
| 255 | +// // ); | ||
| 256 | +// final dir = await getExternalStorageDirectory(); | ||
| 257 | +// String savePath = dir.path + "/one_key"; | ||
| 408 | 258 | ||
| 409 | -// JavascriptChannel _toasterJavascriptChannel(BuildContext context) { | ||
| 410 | -// return JavascriptChannel( | ||
| 411 | -// name: 'Toaster', | ||
| 412 | -// onMessageReceived: (JavascriptMessage message) { | ||
| 413 | -// Scaffold.of(context).showSnackBar( | ||
| 414 | -// SnackBar(content: Text(message.message)), | ||
| 415 | -// ); | ||
| 416 | -// }); | 259 | +// Directory directory = new Directory(savePath); |
| 260 | +// if (directory.existsSync()) { | ||
| 261 | +// //删除历史apk | ||
| 262 | +// final List<FileSystemEntity> files = directory.listSync(); | ||
| 263 | +// for (FileSystemEntity file in files) { | ||
| 264 | +// file.deleteSync(); | ||
| 265 | +// } | ||
| 266 | +// } | ||
| 267 | +// DioUtil().download(url.toString(), savePath, | ||
| 268 | +// onProgress: (received, total) { | ||
| 269 | +// // if (_progress != 100) { | ||
| 270 | +// // int progress = ((received / total) * 100).round(); | ||
| 271 | +// // _progress = progress; | ||
| 272 | +// // _setState(() {}); | ||
| 273 | +// // } | ||
| 274 | +// if (received == total) { | ||
| 275 | +// print('object'); | ||
| 276 | +// Utils.showToast('文件已保存在${savePath}'); | ||
| 277 | +// // openFile(savePath); | ||
| 278 | +// //下载完成 | ||
| 279 | +// // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 280 | +// } | ||
| 281 | +// }); | ||
| 282 | +// // }, | ||
| 283 | +// // DioUtil().download(url.toString(), | ||
| 284 | +// // (await getExternalStorageDirectory()).path, | ||
| 285 | +// // onProgress: (received, total) { | ||
| 286 | +// // // if (_progress != 100) { | ||
| 287 | +// // // int progress = ((received / total) * 100).round(); | ||
| 288 | +// // // _progress = progress; | ||
| 289 | +// // // _setState(() {}); | ||
| 290 | +// // // } | ||
| 291 | +// // if (received == total) { | ||
| 292 | +// // //下载完成 | ||
| 293 | +// // // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 294 | +// // } | ||
| 295 | +// // }); | ||
| 296 | +// }, | ||
| 297 | +// )) | ||
| 298 | +// ], | ||
| 299 | +// ) | ||
| 300 | +// // Builder(builder: (BuildContext context) { | ||
| 301 | +// // return WebView( | ||
| 302 | +// // initialUrl: "http://colorcun.com/privacy1.html", | ||
| 303 | +// // javascriptMode: JavascriptMode.unrestricted, | ||
| 304 | +// // onWebViewCreated: (WebViewController webViewController) { | ||
| 305 | +// // _controller.complete(webViewController); | ||
| 306 | +// // }, | ||
| 307 | +// // // TODO(iskakaushik): Remove this when collection literals makes it to stable. | ||
| 308 | +// // // ignore: prefer_collection_literals | ||
| 309 | +// // javascriptChannels: <JavascriptChannel>[ | ||
| 310 | +// // _toasterJavascriptChannel(context), | ||
| 311 | +// // ].toSet(), | ||
| 312 | +// // navigationDelegate: (NavigationRequest request) { | ||
| 313 | +// // if (request.url.startsWith('https://www.youtube.com/')) { | ||
| 314 | +// // print('blocking navigation to $request}'); | ||
| 315 | +// // return NavigationDecision.prevent; | ||
| 316 | +// // } | ||
| 317 | +// // print('allowing navigation to $request'); | ||
| 318 | +// // return NavigationDecision.navigate; | ||
| 319 | +// // }, | ||
| 320 | +// // onPageStarted: (String url) { | ||
| 321 | +// // print('Page started loading: $url'); | ||
| 322 | +// // }, | ||
| 323 | +// // onPageFinished: (String url) async { | ||
| 324 | +// // print('Page finished loading: $url'); | ||
| 325 | +// // // showDownloadProgress(context); | ||
| 326 | +// // final dir = await getExternalStorageDirectory(); | ||
| 327 | +// // String savePath = dir.path + "/one_key"; | ||
| 328 | +// // DioUtil().download(url, savePath, | ||
| 329 | +// // onProgress: (received, total) { | ||
| 330 | +// // // if (_progress != 100) { | ||
| 331 | +// // // int progress = ((received / total) * 100).round(); | ||
| 332 | +// // // _progress = progress; | ||
| 333 | +// // // _setState(() {}); | ||
| 334 | +// // // } | ||
| 335 | +// // if (received == total) { | ||
| 336 | +// // print('object'); | ||
| 337 | +// // //下载完成 | ||
| 338 | +// // // InstallPlugin.installApk(savePath, "com.naji.one_key"); | ||
| 339 | +// // } | ||
| 340 | +// // }); | ||
| 341 | +// // }, | ||
| 342 | +// // gestureNavigationEnabled: true, | ||
| 343 | +// // ); | ||
| 344 | +// // }), | ||
| 345 | +// )); | ||
| 417 | // } | 346 | // } |
| 347 | + | ||
| 348 | +// // JavascriptChannel _toasterJavascriptChannel(BuildContext context) { | ||
| 349 | +// // return JavascriptChannel( | ||
| 350 | +// // name: 'Toaster', | ||
| 351 | +// // onMessageReceived: (JavascriptMessage message) { | ||
| 352 | +// // Scaffold.of(context).showSnackBar( | ||
| 353 | +// // SnackBar(content: Text(message.message)), | ||
| 354 | +// // ); | ||
| 355 | +// // }); | ||
| 356 | +// // } | ||
| 418 | // } | 357 | // } |
| 358 | + | ||
| 359 | +// // class WebPage extends StatelessWidget { | ||
| 360 | +// // final String title; | ||
| 361 | +// // final String url; | ||
| 362 | +// // final bool need; | ||
| 363 | + | ||
| 364 | +// // const WebPage({Key key, this.title, this.url, this.need = false}) | ||
| 365 | +// // : super(key: key); | ||
| 366 | +// // @override | ||
| 367 | +// // Widget build(BuildContext context) { | ||
| 368 | +// // final Completer<WebViewController> _controller = | ||
| 369 | +// // Completer<WebViewController>(); | ||
| 370 | +// // return Scaffold( | ||
| 371 | +// // appBar: SystemAppBar(title, onTap: () { | ||
| 372 | +// // if (need) { | ||
| 373 | +// // Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 374 | +// // } | ||
| 375 | +// // Navigator.of(context).pop(); | ||
| 376 | +// // }), | ||
| 377 | +// // body: WillPopScope( | ||
| 378 | +// // onWillPop: () async { | ||
| 379 | +// // if (need) { | ||
| 380 | +// // Utils.changeStatusColor(color: MyColours.color_199095); | ||
| 381 | +// // } | ||
| 382 | +// // return true; | ||
| 383 | +// // }, | ||
| 384 | +// // child: WebView( | ||
| 385 | +// // initialUrl: "http://colorcun.com/privacy1.html", | ||
| 386 | +// // javascriptMode: JavascriptMode.unrestricted, | ||
| 387 | +// // onWebViewCreated: (WebViewController webViewController) { | ||
| 388 | +// // // Loading.showLoading(context); | ||
| 389 | +// // _controller.complete(webViewController); | ||
| 390 | +// // }, | ||
| 391 | +// // javascriptChannels: <JavascriptChannel>[ | ||
| 392 | +// // _toasterJavascriptChannel(context), | ||
| 393 | +// // ].toSet(), | ||
| 394 | +// // navigationDelegate: (NavigationRequest request) { | ||
| 395 | +// // if (request.url.startsWith('https://www.youtube.com/')) { | ||
| 396 | +// // return NavigationDecision.prevent; | ||
| 397 | +// // } | ||
| 398 | +// // return NavigationDecision.navigate; | ||
| 399 | +// // }, | ||
| 400 | +// // onPageStarted: (String url) {}, | ||
| 401 | +// // onPageFinished: (String url) { | ||
| 402 | +// // // Loading.hideLoading(context); | ||
| 403 | +// // }, | ||
| 404 | +// // gestureNavigationEnabled: true, | ||
| 405 | +// // )), | ||
| 406 | +// // ); | ||
| 407 | +// // } | ||
| 408 | + | ||
| 409 | +// // JavascriptChannel _toasterJavascriptChannel(BuildContext context) { | ||
| 410 | +// // return JavascriptChannel( | ||
| 411 | +// // name: 'Toaster', | ||
| 412 | +// // onMessageReceived: (JavascriptMessage message) { | ||
| 413 | +// // Scaffold.of(context).showSnackBar( | ||
| 414 | +// // SnackBar(content: Text(message.message)), | ||
| 415 | +// // ); | ||
| 416 | +// // }); | ||
| 417 | +// // } | ||
| 418 | +// // } |
| @@ -72,9 +72,9 @@ class _WebViewPageState extends State<WebViewPage> { | @@ -72,9 +72,9 @@ class _WebViewPageState extends State<WebViewPage> { | ||
| 72 | return JavascriptChannel( | 72 | return JavascriptChannel( |
| 73 | name: 'Toaster', | 73 | name: 'Toaster', |
| 74 | onMessageReceived: (JavascriptMessage message) { | 74 | onMessageReceived: (JavascriptMessage message) { |
| 75 | - Scaffold.of(context).showSnackBar( | ||
| 76 | - SnackBar(content: Text(message.message)), | ||
| 77 | - ); | 75 | + // Scaffold.of(context).showSnackBar( |
| 76 | + // SnackBar(content: Text(message.message)), | ||
| 77 | + // ); | ||
| 78 | }); | 78 | }); |
| 79 | } | 79 | } |
| 80 | } | 80 | } |
| @@ -345,7 +345,8 @@ var webPageHandler = new Handler( | @@ -345,7 +345,8 @@ var webPageHandler = new Handler( | ||
| 345 | String _title = params["title"].first; | 345 | String _title = params["title"].first; |
| 346 | String _url = params["url"].first; | 346 | String _url = params["url"].first; |
| 347 | bool need = params["need"].first == "true" ? true : false; | 347 | bool need = params["need"].first == "true" ? true : false; |
| 348 | - return WebPage(title: _title, url: _url, need: need); | 348 | + |
| 349 | + // return WebPage(title: _title, url: _url, need: need); | ||
| 349 | }); | 350 | }); |
| 350 | 351 | ||
| 351 | // 跳转到变更预订 | 352 | // 跳转到变更预订 |
| @@ -2059,7 +2059,7 @@ class DialogUtil { | @@ -2059,7 +2059,7 @@ class DialogUtil { | ||
| 2059 | // globalState = state; | 2059 | // globalState = state; |
| 2060 | 2060 | ||
| 2061 | return Stack( | 2061 | return Stack( |
| 2062 | - overflow: Overflow.visible, | 2062 | + // overflow: Overflow.visible, |
| 2063 | children: [ | 2063 | children: [ |
| 2064 | Container( | 2064 | Container( |
| 2065 | padding: EdgeInsets.symmetric( | 2065 | padding: EdgeInsets.symmetric( |
| @@ -2601,7 +2601,7 @@ class DialogUtil { | @@ -2601,7 +2601,7 @@ class DialogUtil { | ||
| 2601 | Radius.circular( | 2601 | Radius.circular( |
| 2602 | ScreenUtil().setWidth(10)))), //设置圆角 | 2602 | ScreenUtil().setWidth(10)))), //设置圆角 |
| 2603 | child: Stack( | 2603 | child: Stack( |
| 2604 | - overflow: Overflow.visible, | 2604 | + // overflow: Overflow.visible, |
| 2605 | children: [ | 2605 | children: [ |
| 2606 | Container( | 2606 | Container( |
| 2607 | padding: EdgeInsets.all( | 2607 | padding: EdgeInsets.all( |
| @@ -25,9 +25,9 @@ class _MyAppState extends State<MyApp> { | @@ -25,9 +25,9 @@ class _MyAppState extends State<MyApp> { | ||
| 25 | body: Container( | 25 | body: Container( |
| 26 | padding: EdgeInsets.all(15), | 26 | padding: EdgeInsets.all(15), |
| 27 | width: double.infinity, | 27 | width: double.infinity, |
| 28 | - child: RaisedButton( | 28 | + child: InkWell( |
| 29 | child: Text("Enviar SMS"), | 29 | child: Text("Enviar SMS"), |
| 30 | - onPressed: () async { | 30 | + onTap: () async { |
| 31 | String phoneNumber = "+593992696250"; | 31 | String phoneNumber = "+593992696250"; |
| 32 | String message = "test"; | 32 | String message = "test"; |
| 33 | 33 |
| @@ -7,14 +7,14 @@ packages: | @@ -7,14 +7,14 @@ packages: | ||
| 7 | name: archive | 7 | name: archive |
| 8 | url: "https://pub.flutter-io.cn" | 8 | url: "https://pub.flutter-io.cn" |
| 9 | source: hosted | 9 | source: hosted |
| 10 | - version: "3.1.6" | 10 | + version: "3.3.0" |
| 11 | async: | 11 | async: |
| 12 | dependency: transitive | 12 | dependency: transitive |
| 13 | description: | 13 | description: |
| 14 | name: async | 14 | name: async |
| 15 | url: "https://pub.flutter-io.cn" | 15 | url: "https://pub.flutter-io.cn" |
| 16 | source: hosted | 16 | source: hosted |
| 17 | - version: "2.8.2" | 17 | + version: "2.9.0" |
| 18 | boolean_selector: | 18 | boolean_selector: |
| 19 | dependency: transitive | 19 | dependency: transitive |
| 20 | description: | 20 | description: |
| @@ -28,35 +28,28 @@ packages: | @@ -28,35 +28,28 @@ packages: | ||
| 28 | name: characters | 28 | name: characters |
| 29 | url: "https://pub.flutter-io.cn" | 29 | url: "https://pub.flutter-io.cn" |
| 30 | source: hosted | 30 | source: hosted |
| 31 | - version: "1.2.0" | ||
| 32 | - charcode: | ||
| 33 | - dependency: transitive | ||
| 34 | - description: | ||
| 35 | - name: charcode | ||
| 36 | - url: "https://pub.flutter-io.cn" | ||
| 37 | - source: hosted | ||
| 38 | - version: "1.3.1" | 31 | + version: "1.2.1" |
| 39 | clock: | 32 | clock: |
| 40 | dependency: transitive | 33 | dependency: transitive |
| 41 | description: | 34 | description: |
| 42 | name: clock | 35 | name: clock |
| 43 | url: "https://pub.flutter-io.cn" | 36 | url: "https://pub.flutter-io.cn" |
| 44 | source: hosted | 37 | source: hosted |
| 45 | - version: "1.1.0" | 38 | + version: "1.1.1" |
| 46 | collection: | 39 | collection: |
| 47 | dependency: transitive | 40 | dependency: transitive |
| 48 | description: | 41 | description: |
| 49 | name: collection | 42 | name: collection |
| 50 | url: "https://pub.flutter-io.cn" | 43 | url: "https://pub.flutter-io.cn" |
| 51 | source: hosted | 44 | source: hosted |
| 52 | - version: "1.15.0" | 45 | + version: "1.16.0" |
| 53 | crypto: | 46 | crypto: |
| 54 | dependency: transitive | 47 | dependency: transitive |
| 55 | description: | 48 | description: |
| 56 | name: crypto | 49 | name: crypto |
| 57 | url: "https://pub.flutter-io.cn" | 50 | url: "https://pub.flutter-io.cn" |
| 58 | source: hosted | 51 | source: hosted |
| 59 | - version: "3.0.1" | 52 | + version: "3.0.2" |
| 60 | espresso: | 53 | espresso: |
| 61 | dependency: "direct dev" | 54 | dependency: "direct dev" |
| 62 | description: | 55 | description: |
| @@ -70,7 +63,7 @@ packages: | @@ -70,7 +63,7 @@ packages: | ||
| 70 | name: fake_async | 63 | name: fake_async |
| 71 | url: "https://pub.flutter-io.cn" | 64 | url: "https://pub.flutter-io.cn" |
| 72 | source: hosted | 65 | source: hosted |
| 73 | - version: "1.2.0" | 66 | + version: "1.3.1" |
| 74 | file: | 67 | file: |
| 75 | dependency: transitive | 68 | dependency: transitive |
| 76 | description: | 69 | description: |
| @@ -109,28 +102,28 @@ packages: | @@ -109,28 +102,28 @@ packages: | ||
| 109 | name: matcher | 102 | name: matcher |
| 110 | url: "https://pub.flutter-io.cn" | 103 | url: "https://pub.flutter-io.cn" |
| 111 | source: hosted | 104 | source: hosted |
| 112 | - version: "0.12.11" | 105 | + version: "0.12.12" |
| 113 | material_color_utilities: | 106 | material_color_utilities: |
| 114 | dependency: transitive | 107 | dependency: transitive |
| 115 | description: | 108 | description: |
| 116 | name: material_color_utilities | 109 | name: material_color_utilities |
| 117 | url: "https://pub.flutter-io.cn" | 110 | url: "https://pub.flutter-io.cn" |
| 118 | source: hosted | 111 | source: hosted |
| 119 | - version: "0.1.3" | 112 | + version: "0.1.5" |
| 120 | meta: | 113 | meta: |
| 121 | dependency: transitive | 114 | dependency: transitive |
| 122 | description: | 115 | description: |
| 123 | name: meta | 116 | name: meta |
| 124 | url: "https://pub.flutter-io.cn" | 117 | url: "https://pub.flutter-io.cn" |
| 125 | source: hosted | 118 | source: hosted |
| 126 | - version: "1.7.0" | 119 | + version: "1.8.0" |
| 127 | path: | 120 | path: |
| 128 | dependency: transitive | 121 | dependency: transitive |
| 129 | description: | 122 | description: |
| 130 | name: path | 123 | name: path |
| 131 | url: "https://pub.flutter-io.cn" | 124 | url: "https://pub.flutter-io.cn" |
| 132 | source: hosted | 125 | source: hosted |
| 133 | - version: "1.8.0" | 126 | + version: "1.8.2" |
| 134 | pedantic: | 127 | pedantic: |
| 135 | dependency: "direct dev" | 128 | dependency: "direct dev" |
| 136 | description: | 129 | description: |
| @@ -163,7 +156,7 @@ packages: | @@ -163,7 +156,7 @@ packages: | ||
| 163 | name: source_span | 156 | name: source_span |
| 164 | url: "https://pub.flutter-io.cn" | 157 | url: "https://pub.flutter-io.cn" |
| 165 | source: hosted | 158 | source: hosted |
| 166 | - version: "1.8.1" | 159 | + version: "1.9.0" |
| 167 | stack_trace: | 160 | stack_trace: |
| 168 | dependency: transitive | 161 | dependency: transitive |
| 169 | description: | 162 | description: |
| @@ -184,49 +177,49 @@ packages: | @@ -184,49 +177,49 @@ packages: | ||
| 184 | name: string_scanner | 177 | name: string_scanner |
| 185 | url: "https://pub.flutter-io.cn" | 178 | url: "https://pub.flutter-io.cn" |
| 186 | source: hosted | 179 | source: hosted |
| 187 | - version: "1.1.0" | 180 | + version: "1.1.1" |
| 188 | sync_http: | 181 | sync_http: |
| 189 | dependency: transitive | 182 | dependency: transitive |
| 190 | description: | 183 | description: |
| 191 | name: sync_http | 184 | name: sync_http |
| 192 | url: "https://pub.flutter-io.cn" | 185 | url: "https://pub.flutter-io.cn" |
| 193 | source: hosted | 186 | source: hosted |
| 194 | - version: "0.3.0" | 187 | + version: "0.3.1" |
| 195 | term_glyph: | 188 | term_glyph: |
| 196 | dependency: transitive | 189 | dependency: transitive |
| 197 | description: | 190 | description: |
| 198 | name: term_glyph | 191 | name: term_glyph |
| 199 | url: "https://pub.flutter-io.cn" | 192 | url: "https://pub.flutter-io.cn" |
| 200 | source: hosted | 193 | source: hosted |
| 201 | - version: "1.2.0" | 194 | + version: "1.2.1" |
| 202 | test_api: | 195 | test_api: |
| 203 | dependency: transitive | 196 | dependency: transitive |
| 204 | description: | 197 | description: |
| 205 | name: test_api | 198 | name: test_api |
| 206 | url: "https://pub.flutter-io.cn" | 199 | url: "https://pub.flutter-io.cn" |
| 207 | source: hosted | 200 | source: hosted |
| 208 | - version: "0.4.8" | 201 | + version: "0.4.12" |
| 209 | typed_data: | 202 | typed_data: |
| 210 | dependency: transitive | 203 | dependency: transitive |
| 211 | description: | 204 | description: |
| 212 | name: typed_data | 205 | name: typed_data |
| 213 | url: "https://pub.flutter-io.cn" | 206 | url: "https://pub.flutter-io.cn" |
| 214 | source: hosted | 207 | source: hosted |
| 215 | - version: "1.3.0" | 208 | + version: "1.3.1" |
| 216 | vector_math: | 209 | vector_math: |
| 217 | dependency: transitive | 210 | dependency: transitive |
| 218 | description: | 211 | description: |
| 219 | name: vector_math | 212 | name: vector_math |
| 220 | url: "https://pub.flutter-io.cn" | 213 | url: "https://pub.flutter-io.cn" |
| 221 | source: hosted | 214 | source: hosted |
| 222 | - version: "2.1.1" | 215 | + version: "2.1.2" |
| 223 | vm_service: | 216 | vm_service: |
| 224 | dependency: transitive | 217 | dependency: transitive |
| 225 | description: | 218 | description: |
| 226 | name: vm_service | 219 | name: vm_service |
| 227 | url: "https://pub.flutter-io.cn" | 220 | url: "https://pub.flutter-io.cn" |
| 228 | source: hosted | 221 | source: hosted |
| 229 | - version: "7.5.0" | 222 | + version: "9.0.0" |
| 230 | webdriver: | 223 | webdriver: |
| 231 | dependency: transitive | 224 | dependency: transitive |
| 232 | description: | 225 | description: |
| @@ -242,5 +235,5 @@ packages: | @@ -242,5 +235,5 @@ packages: | ||
| 242 | source: path | 235 | source: path |
| 243 | version: "2.0.13" | 236 | version: "2.0.13" |
| 244 | sdks: | 237 | sdks: |
| 245 | - dart: ">=2.14.0 <3.0.0" | 238 | + dart: ">=2.17.0-0 <3.0.0" |
| 246 | flutter: ">=2.0.0" | 239 | flutter: ">=2.0.0" |
| @@ -7,14 +7,14 @@ packages: | @@ -7,14 +7,14 @@ packages: | ||
| 7 | name: archive | 7 | name: archive |
| 8 | url: "https://pub.flutter-io.cn" | 8 | url: "https://pub.flutter-io.cn" |
| 9 | source: hosted | 9 | source: hosted |
| 10 | - version: "3.1.6" | 10 | + version: "3.3.0" |
| 11 | async: | 11 | async: |
| 12 | dependency: transitive | 12 | dependency: transitive |
| 13 | description: | 13 | description: |
| 14 | name: async | 14 | name: async |
| 15 | url: "https://pub.flutter-io.cn" | 15 | url: "https://pub.flutter-io.cn" |
| 16 | source: hosted | 16 | source: hosted |
| 17 | - version: "2.8.2" | 17 | + version: "2.9.0" |
| 18 | boolean_selector: | 18 | boolean_selector: |
| 19 | dependency: transitive | 19 | dependency: transitive |
| 20 | description: | 20 | description: |
| @@ -28,42 +28,35 @@ packages: | @@ -28,42 +28,35 @@ packages: | ||
| 28 | name: characters | 28 | name: characters |
| 29 | url: "https://pub.flutter-io.cn" | 29 | url: "https://pub.flutter-io.cn" |
| 30 | source: hosted | 30 | source: hosted |
| 31 | - version: "1.2.0" | ||
| 32 | - charcode: | ||
| 33 | - dependency: transitive | ||
| 34 | - description: | ||
| 35 | - name: charcode | ||
| 36 | - url: "https://pub.flutter-io.cn" | ||
| 37 | - source: hosted | ||
| 38 | - version: "1.3.1" | 31 | + version: "1.2.1" |
| 39 | clock: | 32 | clock: |
| 40 | dependency: transitive | 33 | dependency: transitive |
| 41 | description: | 34 | description: |
| 42 | name: clock | 35 | name: clock |
| 43 | url: "https://pub.flutter-io.cn" | 36 | url: "https://pub.flutter-io.cn" |
| 44 | source: hosted | 37 | source: hosted |
| 45 | - version: "1.1.0" | 38 | + version: "1.1.1" |
| 46 | collection: | 39 | collection: |
| 47 | dependency: transitive | 40 | dependency: transitive |
| 48 | description: | 41 | description: |
| 49 | name: collection | 42 | name: collection |
| 50 | url: "https://pub.flutter-io.cn" | 43 | url: "https://pub.flutter-io.cn" |
| 51 | source: hosted | 44 | source: hosted |
| 52 | - version: "1.15.0" | 45 | + version: "1.16.0" |
| 53 | crypto: | 46 | crypto: |
| 54 | dependency: transitive | 47 | dependency: transitive |
| 55 | description: | 48 | description: |
| 56 | name: crypto | 49 | name: crypto |
| 57 | url: "https://pub.flutter-io.cn" | 50 | url: "https://pub.flutter-io.cn" |
| 58 | source: hosted | 51 | source: hosted |
| 59 | - version: "3.0.1" | 52 | + version: "3.0.2" |
| 60 | fake_async: | 53 | fake_async: |
| 61 | dependency: transitive | 54 | dependency: transitive |
| 62 | description: | 55 | description: |
| 63 | name: fake_async | 56 | name: fake_async |
| 64 | url: "https://pub.flutter-io.cn" | 57 | url: "https://pub.flutter-io.cn" |
| 65 | source: hosted | 58 | source: hosted |
| 66 | - version: "1.2.0" | 59 | + version: "1.3.1" |
| 67 | file: | 60 | file: |
| 68 | dependency: transitive | 61 | dependency: transitive |
| 69 | description: | 62 | description: |
| @@ -97,28 +90,28 @@ packages: | @@ -97,28 +90,28 @@ packages: | ||
| 97 | name: matcher | 90 | name: matcher |
| 98 | url: "https://pub.flutter-io.cn" | 91 | url: "https://pub.flutter-io.cn" |
| 99 | source: hosted | 92 | source: hosted |
| 100 | - version: "0.12.11" | 93 | + version: "0.12.12" |
| 101 | material_color_utilities: | 94 | material_color_utilities: |
| 102 | dependency: transitive | 95 | dependency: transitive |
| 103 | description: | 96 | description: |
| 104 | name: material_color_utilities | 97 | name: material_color_utilities |
| 105 | url: "https://pub.flutter-io.cn" | 98 | url: "https://pub.flutter-io.cn" |
| 106 | source: hosted | 99 | source: hosted |
| 107 | - version: "0.1.3" | 100 | + version: "0.1.5" |
| 108 | meta: | 101 | meta: |
| 109 | dependency: transitive | 102 | dependency: transitive |
| 110 | description: | 103 | description: |
| 111 | name: meta | 104 | name: meta |
| 112 | url: "https://pub.flutter-io.cn" | 105 | url: "https://pub.flutter-io.cn" |
| 113 | source: hosted | 106 | source: hosted |
| 114 | - version: "1.7.0" | 107 | + version: "1.8.0" |
| 115 | path: | 108 | path: |
| 116 | dependency: transitive | 109 | dependency: transitive |
| 117 | description: | 110 | description: |
| 118 | name: path | 111 | name: path |
| 119 | url: "https://pub.flutter-io.cn" | 112 | url: "https://pub.flutter-io.cn" |
| 120 | source: hosted | 113 | source: hosted |
| 121 | - version: "1.8.0" | 114 | + version: "1.8.2" |
| 122 | pedantic: | 115 | pedantic: |
| 123 | dependency: "direct dev" | 116 | dependency: "direct dev" |
| 124 | description: | 117 | description: |
| @@ -151,7 +144,7 @@ packages: | @@ -151,7 +144,7 @@ packages: | ||
| 151 | name: source_span | 144 | name: source_span |
| 152 | url: "https://pub.flutter-io.cn" | 145 | url: "https://pub.flutter-io.cn" |
| 153 | source: hosted | 146 | source: hosted |
| 154 | - version: "1.8.1" | 147 | + version: "1.9.0" |
| 155 | stack_trace: | 148 | stack_trace: |
| 156 | dependency: transitive | 149 | dependency: transitive |
| 157 | description: | 150 | description: |
| @@ -172,49 +165,49 @@ packages: | @@ -172,49 +165,49 @@ packages: | ||
| 172 | name: string_scanner | 165 | name: string_scanner |
| 173 | url: "https://pub.flutter-io.cn" | 166 | url: "https://pub.flutter-io.cn" |
| 174 | source: hosted | 167 | source: hosted |
| 175 | - version: "1.1.0" | 168 | + version: "1.1.1" |
| 176 | sync_http: | 169 | sync_http: |
| 177 | dependency: transitive | 170 | dependency: transitive |
| 178 | description: | 171 | description: |
| 179 | name: sync_http | 172 | name: sync_http |
| 180 | url: "https://pub.flutter-io.cn" | 173 | url: "https://pub.flutter-io.cn" |
| 181 | source: hosted | 174 | source: hosted |
| 182 | - version: "0.3.0" | 175 | + version: "0.3.1" |
| 183 | term_glyph: | 176 | term_glyph: |
| 184 | dependency: transitive | 177 | dependency: transitive |
| 185 | description: | 178 | description: |
| 186 | name: term_glyph | 179 | name: term_glyph |
| 187 | url: "https://pub.flutter-io.cn" | 180 | url: "https://pub.flutter-io.cn" |
| 188 | source: hosted | 181 | source: hosted |
| 189 | - version: "1.2.0" | 182 | + version: "1.2.1" |
| 190 | test_api: | 183 | test_api: |
| 191 | dependency: transitive | 184 | dependency: transitive |
| 192 | description: | 185 | description: |
| 193 | name: test_api | 186 | name: test_api |
| 194 | url: "https://pub.flutter-io.cn" | 187 | url: "https://pub.flutter-io.cn" |
| 195 | source: hosted | 188 | source: hosted |
| 196 | - version: "0.4.8" | 189 | + version: "0.4.12" |
| 197 | typed_data: | 190 | typed_data: |
| 198 | dependency: transitive | 191 | dependency: transitive |
| 199 | description: | 192 | description: |
| 200 | name: typed_data | 193 | name: typed_data |
| 201 | url: "https://pub.flutter-io.cn" | 194 | url: "https://pub.flutter-io.cn" |
| 202 | source: hosted | 195 | source: hosted |
| 203 | - version: "1.3.0" | 196 | + version: "1.3.1" |
| 204 | vector_math: | 197 | vector_math: |
| 205 | dependency: transitive | 198 | dependency: transitive |
| 206 | description: | 199 | description: |
| 207 | name: vector_math | 200 | name: vector_math |
| 208 | url: "https://pub.flutter-io.cn" | 201 | url: "https://pub.flutter-io.cn" |
| 209 | source: hosted | 202 | source: hosted |
| 210 | - version: "2.1.1" | 203 | + version: "2.1.2" |
| 211 | vm_service: | 204 | vm_service: |
| 212 | dependency: transitive | 205 | dependency: transitive |
| 213 | description: | 206 | description: |
| 214 | name: vm_service | 207 | name: vm_service |
| 215 | url: "https://pub.flutter-io.cn" | 208 | url: "https://pub.flutter-io.cn" |
| 216 | source: hosted | 209 | source: hosted |
| 217 | - version: "7.5.0" | 210 | + version: "9.0.0" |
| 218 | webdriver: | 211 | webdriver: |
| 219 | dependency: transitive | 212 | dependency: transitive |
| 220 | description: | 213 | description: |
| @@ -223,5 +216,5 @@ packages: | @@ -223,5 +216,5 @@ packages: | ||
| 223 | source: hosted | 216 | source: hosted |
| 224 | version: "3.0.0" | 217 | version: "3.0.0" |
| 225 | sdks: | 218 | sdks: |
| 226 | - dart: ">=2.14.0 <3.0.0" | 219 | + dart: ">=2.17.0-0 <3.0.0" |
| 227 | flutter: ">=2.0.0" | 220 | flutter: ">=2.0.0" |
| @@ -56,7 +56,7 @@ packages: | @@ -56,7 +56,7 @@ packages: | ||
| 56 | name: async | 56 | name: async |
| 57 | url: "https://pub.flutter-io.cn" | 57 | url: "https://pub.flutter-io.cn" |
| 58 | source: hosted | 58 | source: hosted |
| 59 | - version: "2.8.2" | 59 | + version: "2.9.0" |
| 60 | audioplayers: | 60 | audioplayers: |
| 61 | dependency: "direct main" | 61 | dependency: "direct main" |
| 62 | description: | 62 | description: |
| @@ -161,14 +161,7 @@ packages: | @@ -161,14 +161,7 @@ packages: | ||
| 161 | name: characters | 161 | name: characters |
| 162 | url: "https://pub.flutter-io.cn" | 162 | url: "https://pub.flutter-io.cn" |
| 163 | source: hosted | 163 | source: hosted |
| 164 | - version: "1.2.0" | ||
| 165 | - charcode: | ||
| 166 | - dependency: transitive | ||
| 167 | - description: | ||
| 168 | - name: charcode | ||
| 169 | - url: "https://pub.flutter-io.cn" | ||
| 170 | - source: hosted | ||
| 171 | - version: "1.3.1" | 164 | + version: "1.2.1" |
| 172 | checked_yaml: | 165 | checked_yaml: |
| 173 | dependency: transitive | 166 | dependency: transitive |
| 174 | description: | 167 | description: |
| @@ -189,7 +182,7 @@ packages: | @@ -189,7 +182,7 @@ packages: | ||
| 189 | name: clock | 182 | name: clock |
| 190 | url: "https://pub.flutter-io.cn" | 183 | url: "https://pub.flutter-io.cn" |
| 191 | source: hosted | 184 | source: hosted |
| 192 | - version: "1.1.0" | 185 | + version: "1.1.1" |
| 193 | code_builder: | 186 | code_builder: |
| 194 | dependency: transitive | 187 | dependency: transitive |
| 195 | description: | 188 | description: |
| @@ -203,7 +196,7 @@ packages: | @@ -203,7 +196,7 @@ packages: | ||
| 203 | name: collection | 196 | name: collection |
| 204 | url: "https://pub.flutter-io.cn" | 197 | url: "https://pub.flutter-io.cn" |
| 205 | source: hosted | 198 | source: hosted |
| 206 | - version: "1.15.0" | 199 | + version: "1.16.0" |
| 207 | common_utils: | 200 | common_utils: |
| 208 | dependency: "direct main" | 201 | dependency: "direct main" |
| 209 | description: | 202 | description: |
| @@ -357,7 +350,7 @@ packages: | @@ -357,7 +350,7 @@ packages: | ||
| 357 | name: fake_async | 350 | name: fake_async |
| 358 | url: "https://pub.flutter-io.cn" | 351 | url: "https://pub.flutter-io.cn" |
| 359 | source: hosted | 352 | source: hosted |
| 360 | - version: "1.2.0" | 353 | + version: "1.3.1" |
| 361 | ffi: | 354 | ffi: |
| 362 | dependency: transitive | 355 | dependency: transitive |
| 363 | description: | 356 | description: |
| @@ -446,7 +439,7 @@ packages: | @@ -446,7 +439,7 @@ packages: | ||
| 446 | name: flutter_inappwebview | 439 | name: flutter_inappwebview |
| 447 | url: "https://pub.flutter-io.cn" | 440 | url: "https://pub.flutter-io.cn" |
| 448 | source: hosted | 441 | source: hosted |
| 449 | - version: "5.3.2" | 442 | + version: "5.0.5" |
| 450 | flutter_native_image: | 443 | flutter_native_image: |
| 451 | dependency: "direct main" | 444 | dependency: "direct main" |
| 452 | description: | 445 | description: |
| @@ -652,7 +645,7 @@ packages: | @@ -652,7 +645,7 @@ packages: | ||
| 652 | name: js | 645 | name: js |
| 653 | url: "https://pub.flutter-io.cn" | 646 | url: "https://pub.flutter-io.cn" |
| 654 | source: hosted | 647 | source: hosted |
| 655 | - version: "0.6.3" | 648 | + version: "0.6.4" |
| 656 | json_annotation: | 649 | json_annotation: |
| 657 | dependency: "direct main" | 650 | dependency: "direct main" |
| 658 | description: | 651 | description: |
| @@ -687,21 +680,21 @@ packages: | @@ -687,21 +680,21 @@ packages: | ||
| 687 | name: matcher | 680 | name: matcher |
| 688 | url: "https://pub.flutter-io.cn" | 681 | url: "https://pub.flutter-io.cn" |
| 689 | source: hosted | 682 | source: hosted |
| 690 | - version: "0.12.11" | 683 | + version: "0.12.12" |
| 691 | material_color_utilities: | 684 | material_color_utilities: |
| 692 | dependency: transitive | 685 | dependency: transitive |
| 693 | description: | 686 | description: |
| 694 | name: material_color_utilities | 687 | name: material_color_utilities |
| 695 | url: "https://pub.flutter-io.cn" | 688 | url: "https://pub.flutter-io.cn" |
| 696 | source: hosted | 689 | source: hosted |
| 697 | - version: "0.1.3" | 690 | + version: "0.1.5" |
| 698 | meta: | 691 | meta: |
| 699 | dependency: transitive | 692 | dependency: transitive |
| 700 | description: | 693 | description: |
| 701 | name: meta | 694 | name: meta |
| 702 | url: "https://pub.flutter-io.cn" | 695 | url: "https://pub.flutter-io.cn" |
| 703 | source: hosted | 696 | source: hosted |
| 704 | - version: "1.7.0" | 697 | + version: "1.8.0" |
| 705 | mime: | 698 | mime: |
| 706 | dependency: transitive | 699 | dependency: transitive |
| 707 | description: | 700 | description: |
| @@ -743,7 +736,7 @@ packages: | @@ -743,7 +736,7 @@ packages: | ||
| 743 | name: path | 736 | name: path |
| 744 | url: "https://pub.flutter-io.cn" | 737 | url: "https://pub.flutter-io.cn" |
| 745 | source: hosted | 738 | source: hosted |
| 746 | - version: "1.8.0" | 739 | + version: "1.8.2" |
| 747 | path_drawing: | 740 | path_drawing: |
| 748 | dependency: transitive | 741 | dependency: transitive |
| 749 | description: | 742 | description: |
| @@ -1077,7 +1070,7 @@ packages: | @@ -1077,7 +1070,7 @@ packages: | ||
| 1077 | name: source_span | 1070 | name: source_span |
| 1078 | url: "https://pub.flutter-io.cn" | 1071 | url: "https://pub.flutter-io.cn" |
| 1079 | source: hosted | 1072 | source: hosted |
| 1080 | - version: "1.8.1" | 1073 | + version: "1.9.0" |
| 1081 | sqflite: | 1074 | sqflite: |
| 1082 | dependency: "direct main" | 1075 | dependency: "direct main" |
| 1083 | description: | 1076 | description: |
| @@ -1119,7 +1112,7 @@ packages: | @@ -1119,7 +1112,7 @@ packages: | ||
| 1119 | name: string_scanner | 1112 | name: string_scanner |
| 1120 | url: "https://pub.flutter-io.cn" | 1113 | url: "https://pub.flutter-io.cn" |
| 1121 | source: hosted | 1114 | source: hosted |
| 1122 | - version: "1.1.0" | 1115 | + version: "1.1.1" |
| 1123 | synchronized: | 1116 | synchronized: |
| 1124 | dependency: transitive | 1117 | dependency: transitive |
| 1125 | description: | 1118 | description: |
| @@ -1140,14 +1133,14 @@ packages: | @@ -1140,14 +1133,14 @@ packages: | ||
| 1140 | name: term_glyph | 1133 | name: term_glyph |
| 1141 | url: "https://pub.flutter-io.cn" | 1134 | url: "https://pub.flutter-io.cn" |
| 1142 | source: hosted | 1135 | source: hosted |
| 1143 | - version: "1.2.0" | 1136 | + version: "1.2.1" |
| 1144 | test_api: | 1137 | test_api: |
| 1145 | dependency: transitive | 1138 | dependency: transitive |
| 1146 | description: | 1139 | description: |
| 1147 | name: test_api | 1140 | name: test_api |
| 1148 | url: "https://pub.flutter-io.cn" | 1141 | url: "https://pub.flutter-io.cn" |
| 1149 | source: hosted | 1142 | source: hosted |
| 1150 | - version: "0.4.8" | 1143 | + version: "0.4.12" |
| 1151 | timing: | 1144 | timing: |
| 1152 | dependency: transitive | 1145 | dependency: transitive |
| 1153 | description: | 1146 | description: |
| @@ -1247,7 +1240,7 @@ packages: | @@ -1247,7 +1240,7 @@ packages: | ||
| 1247 | name: vector_math | 1240 | name: vector_math |
| 1248 | url: "https://pub.flutter-io.cn" | 1241 | url: "https://pub.flutter-io.cn" |
| 1249 | source: hosted | 1242 | source: hosted |
| 1250 | - version: "2.1.1" | 1243 | + version: "2.1.2" |
| 1251 | video_compress: | 1244 | video_compress: |
| 1252 | dependency: "direct main" | 1245 | dependency: "direct main" |
| 1253 | description: | 1246 | description: |
| @@ -1375,5 +1368,5 @@ packages: | @@ -1375,5 +1368,5 @@ packages: | ||
| 1375 | source: hosted | 1368 | source: hosted |
| 1376 | version: "3.1.1" | 1369 | version: "3.1.1" |
| 1377 | sdks: | 1370 | sdks: |
| 1378 | - dart: ">=2.16.0 <3.0.0" | 1371 | + dart: ">=2.17.0-0 <3.0.0" |
| 1379 | flutter: ">=2.10.0" | 1372 | flutter: ">=2.10.0" |
| @@ -148,7 +148,8 @@ dependencies: | @@ -148,7 +148,8 @@ dependencies: | ||
| 148 | flutter_staggered_grid_view: ^0.4.1 | 148 | flutter_staggered_grid_view: ^0.4.1 |
| 149 | # webview | 149 | # webview |
| 150 | # webview_flutter: ^2.0.13 | 150 | # webview_flutter: ^2.0.13 |
| 151 | - flutter_inappwebview: ^5.3.2 | 151 | + # flutter_inappwebview: ^5.3.2 |
| 152 | + flutter_inappwebview: ^5.0.5 | ||
| 152 | # flutter_downloader: ^1.7.1 | 153 | # flutter_downloader: ^1.7.1 |
| 153 | # open_file: ^3.2.1 | 154 | # open_file: ^3.2.1 |
| 154 | 155 |
-
Please register or login to post a comment