diff --git a/assets/common/space_img_h.png b/assets/common/space_img_h.png new file mode 100644 index 0000000..904fb1c Binary files /dev/null and b/assets/common/space_img_h.png differ diff --git a/assets/common/space_img_w.png b/assets/common/space_img_w.png new file mode 100644 index 0000000..8fe7d7b Binary files /dev/null and b/assets/common/space_img_w.png differ diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..92ede67 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,159 @@ +PODS: + - connectivity_plus (0.0.1): + - Flutter + - device_info_plus (0.0.1): + - Flutter + - Flutter (1.0.0) + - flutter_image_compress_common (1.0.0): + - Flutter + - Mantle + - SDWebImage + - SDWebImageWebPCoder + - flutter_inappwebview_ios (0.0.1): + - Flutter + - flutter_inappwebview_ios/Core (= 0.0.1) + - OrderedSet (~> 6.0.3) + - flutter_inappwebview_ios/Core (0.0.1): + - Flutter + - OrderedSet (~> 6.0.3) + - flutter_secure_storage (6.0.0): + - Flutter + - fluttertoast (0.0.2): + - Flutter + - image_picker_ios (0.0.1): + - Flutter + - libwebp (1.5.0): + - libwebp/demux (= 1.5.0) + - libwebp/mux (= 1.5.0) + - libwebp/sharpyuv (= 1.5.0) + - libwebp/webp (= 1.5.0) + - libwebp/demux (1.5.0): + - libwebp/webp + - libwebp/mux (1.5.0): + - libwebp/demux + - libwebp/sharpyuv (1.5.0) + - libwebp/webp (1.5.0): + - libwebp/sharpyuv + - Mantle (2.2.0): + - Mantle/extobjc (= 2.2.0) + - Mantle/extobjc (2.2.0) + - OrderedSet (6.0.3) + - package_info_plus (0.4.5): + - Flutter + - SDWebImage (5.21.7): + - SDWebImage/Core (= 5.21.7) + - SDWebImage/Core (5.21.7) + - SDWebImageWebPCoder (0.15.0): + - libwebp (~> 1.0) + - SDWebImage/Core (~> 5.17) + - share_plus (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sign_in_with_apple (0.0.1): + - Flutter + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - url_launcher_ios (0.0.1): + - Flutter + - video_player_avfoundation (0.0.1): + - Flutter + - FlutterMacOS + - wakelock_plus (0.0.1): + - Flutter + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) + - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) + - Flutter (from `Flutter`) + - flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) + - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - share_plus (from `.symlinks/plugins/share_plus/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) + - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) + +SPEC REPOS: + trunk: + - libwebp + - Mantle + - OrderedSet + - SDWebImage + - SDWebImageWebPCoder + +EXTERNAL SOURCES: + connectivity_plus: + :path: ".symlinks/plugins/connectivity_plus/ios" + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" + Flutter: + :path: Flutter + flutter_image_compress_common: + :path: ".symlinks/plugins/flutter_image_compress_common/ios" + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" + flutter_secure_storage: + :path: ".symlinks/plugins/flutter_secure_storage/ios" + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + share_plus: + :path: ".symlinks/plugins/share_plus/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sign_in_with_apple: + :path: ".symlinks/plugins/sign_in_with_apple/ios" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + video_player_avfoundation: + :path: ".symlinks/plugins/video_player_avfoundation/darwin" + wakelock_plus: + :path: ".symlinks/plugins/wakelock_plus/ios" + webview_flutter_wkwebview: + :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" + +SPEC CHECKSUMS: + connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe + Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13 + fluttertoast: fe6790210fdba20801685be946e3a2124b72eef5 + image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326 + libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 + Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d + OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf + SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + sign_in_with_apple: c5dcc141574c8c54d5ac99dd2163c0c72ad22418 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b + video_player_avfoundation: 3453f792138786248960ca029747fcd9f318ef52 + wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556 + webview_flutter_wkwebview: 8ebf4fded22593026f7dbff1fbff31ea98573c8d + +PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e + +COCOAPODS: 1.16.2 diff --git a/lib/global/request/api_const.dart b/lib/global/request/api_const.dart index 1cb8c02..41b0752 100644 --- a/lib/global/request/api_const.dart +++ b/lib/global/request/api_const.dart @@ -3,6 +3,7 @@ final class ApiConst { static const appName = 'Glimzo'; static const int pageSize = 12; + // https://api-glimzodf.glimzodf.com/glimzodf static const String apiLink = 'https://api-quickeltv.quickeltv.com/quickeltv'; static String webPrefix = "quickeltv.com"; diff --git a/lib/global/request/app_request.dart b/lib/global/request/app_request.dart index 2369553..eff76ca 100644 --- a/lib/global/request/app_request.dart +++ b/lib/global/request/app_request.dart @@ -1,10 +1,8 @@ import 'dart:io'; import 'package:dio/dio.dart'; -import 'package:flutter/foundation.dart'; import 'package:skywood/global/request/api_const.dart'; import 'package:skywood/global/request/network_interceptor.dart'; import 'package:skywood/utils/tools/app_toast.dart'; -import 'package:talker_dio_logger/talker_dio_logger.dart'; import '../../utils/tools/token_manage.dart'; diff --git a/lib/pages/home/widgets/daily_quest_widget.dart b/lib/pages/home/widgets/daily_quest_widget.dart index aa00fa0..e527af3 100644 --- a/lib/pages/home/widgets/daily_quest_widget.dart +++ b/lib/pages/home/widgets/daily_quest_widget.dart @@ -57,7 +57,9 @@ class DailyQuestWidget extends StatelessWidget { onTap: () { HelpNav.to(DramaDetailPage(dramaBean: drama)); }, - child: HelpImg.network(drama.horizontallyImg, width: 95.w, height: 50.h, fit: BoxFit.cover), + child: HelpImg.network(drama.horizontallyImg, width: 95.w, height: 50.h, fit: BoxFit.cover, + isWidth: true + ), ); }) ), @@ -73,7 +75,9 @@ class DailyQuestWidget extends StatelessWidget { decoration: BoxDecoration( border: Border.all(color: CommonColor.black, width: 1), ), - child: HelpImg.network(drama.horizontallyImg, width: 300.w, height: 160.h, fit: BoxFit.cover), + child: HelpImg.network(drama.horizontallyImg, width: 300.w, height: 160.h, fit: BoxFit.cover, + isWidth: true + ), ), SizedBox(height: 4.h), Row( diff --git a/lib/utils/tools/help_img.dart b/lib/utils/tools/help_img.dart index 86558ac..9b66fe5 100644 --- a/lib/utils/tools/help_img.dart +++ b/lib/utils/tools/help_img.dart @@ -23,6 +23,9 @@ class ConstImg { static const String noworkImg = "assets/common/nowork_img.png"; // applogo static const String appLogo = "assets/common/applogo.png"; + // space_img_h + static const String spaceImgH = "assets/common/space_img_h.png"; + static const String spaceImgW = "assets/common/space_img_w.png"; static const String homeBg = "assets/imgs/home_bg.png"; @@ -137,6 +140,7 @@ class HelpImg { BoxShape? shape, BorderRadius? borderRadius, Widget? errorWidget, + bool isWidth = false, }) { return ClipRRect( borderRadius: borderRadius ?? BorderRadius.circular(3), @@ -147,6 +151,7 @@ class HelpImg { height: height, shape: shape, errorWidget: errorWidget, + isWidth: isWidth ), ); } @@ -161,6 +166,7 @@ class HelpImg { BoxShape? shape, BorderRadius? borderRadius, Widget? errorWidget, + bool isWidth = false, }) { // bool isSvg = path.toLowerCase().endsWith('.svg'); // if (isSvg) { @@ -180,6 +186,11 @@ class HelpImg { // ), // ); // } + return FadeInImage.assetNetwork( + placeholder: isWidth==true ? ConstImg.spaceImgW : ConstImg.spaceImgH, image: path, + width: width, height: height, fit: BoxFit.cover + ); + return Image.network( path, width: width, @@ -187,33 +198,17 @@ class HelpImg { fit: fit, loadingBuilder: (context, child, loadingProgress) { if (loadingProgress == null) return child; - return SizedBox( - width: width, height: height, - child: Center( - //CircularProgressIndicator - child: Container( - width: 30, - height: 30, - padding: const EdgeInsets.all(5), - child: CircularProgressIndicator( - color: Colors.white, - strokeWidth: 1, - ), - ), - ), + return HelpImg.asset(isWidth==true ? ConstImg.spaceImgW : ConstImg.spaceImgH, fit: BoxFit.fill, + width: width, height: height ); }, errorBuilder: (context, error, stackTrace) { // ✅ 关键:处理加载失败的情况 return errorWidget ?? - Container( - width: 50, - height: 50, - color: Colors.grey[300], - child: const Icon( - Icons.broken_image, - color: Colors.grey, - size: 40, + SizedBox( + width: width, height: height, + child: HelpImg.asset(isWidth==true ? ConstImg.spaceImgW : ConstImg.spaceImgH, fit: BoxFit.fill, + width: width, height: height ), ); },