diff --git a/android/app/build.gradle b/android/app/build.gradle index cb5c916..d8cf165 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -36,8 +36,8 @@ if (flutterVersionName == null) { } android { - // namespace = "com.taihe.vbvs_app" - namespace = "com.taihe.mianhuatang" + namespace = "com.taihe.vbvs_app" + // namespace = "com.taihe.mianhuatang" // compileSdk = flutter.compileSdkVersion compileSdk = localProperties.getProperty('flutter.compileSdkVersion').toInteger() @@ -56,8 +56,8 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - // applicationId "com.taihe.vbvs_app" - applicationId "com.taihe.mianhuatang" + applicationId "com.taihe.vbvs_app" + // applicationId "com.taihe.mianhuatang" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. // minSdk = flutter.minSdkVersion diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index d81786d..12e1dc6 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } android { - namespace = "com.taihe.mianhuatang" + namespace = "com.taihe.vbvs_app" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -21,7 +21,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "com.taihe.mianhuatang" + applicationId = "com.taihe.vbvs_app" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 59fe178..cfd945b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ - - + @@ -43,12 +43,12 @@ json) => diff --git a/lib/main.dart b/lib/main.dart index 8ffbf98..abe2933 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -187,12 +187,12 @@ Future initWX() async { Fluwx fluwx = Fluwx(); fluwx.registerApi( //请填写自己的微信appid - // appId: "wxeb2688220799e2c5", //太和 - appId: "wx929c548fea6af9c7", //眠花糖 + appId: "wxeb2688220799e2c5", //太和 + // appId: "wx929c548fea6af9c7", //眠花糖 doOnAndroid: true, doOnIOS: true, - // universalLink: "https://app.he-info.com/theh/", - universalLink: "https://zhmht.swes.com.cn/app/", + universalLink: "https://app.he-info.com/theh/", + // universalLink: "https://zhmht.swes.com.cn/app/", ); } diff --git a/lib/pages/common/selectDialog.dart b/lib/pages/common/selectDialog.dart index 007cd17..3c74f92 100644 --- a/lib/pages/common/selectDialog.dart +++ b/lib/pages/common/selectDialog.dart @@ -11,6 +11,7 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/component/tool/CustomCard.dart'; import 'package:vbvs_app/controller/device/device_calibration_controller.dart'; import 'package:vbvs_app/controller/theme_controller/ThemeController.dart'; +import 'package:vbvs_app/pages/policy/privacy_policy.dart'; getOnePicker(BuildContext context, List arr, int checkIndex, Function onSelectedItemChanged, @@ -1494,6 +1495,101 @@ void showSleepCalendarBottomSheet({ ); } +// Future showCustomConfirmOfWebViewDialog( +// BuildContext context, String name, String webviewUrl, +// {String btnName = "确定", +// bool showCancel = false, +// String cancelName = "取消", +// ConfirmDialogIcon icon = ConfirmDialogIcon.warn}) async { +// return showDialog( +// context: context, +// barrierDismissible: true, +// builder: (BuildContext context) { +// return Dialog( +// backgroundColor: Colors.white, +// insetPadding: EdgeInsets.all(0), +// shape: RoundedRectangleBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// child: Container( +// width: 640.rpx, +// padding: EdgeInsets.fromLTRB(22.rpx, 0, 20.rpx, 10.rpx), +// child: Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Container( +// alignment: Alignment.centerRight, +// child: closeIcon, +// ), +// SizedBox(height: 40.rpx), +// Container( +// height: MediaQuery.of(context).size.height * 0.4, +// child: PrivacyPolicyNewPage( +// sleepUri: webviewUrl, +// showAppbar: false, +// ), +// ), +// SizedBox(height: 20.rpx), +// Row( +// mainAxisAlignment: MainAxisAlignment.center, +// children: [ +// if (showCancel) +// Container( +// margin: EdgeInsets.only( +// top: 50.rpx, bottom: 40.rpx, right: 100.rpx), +// alignment: Alignment.center, +// child: InkWell( +// onTap: () { +// Get.back(); +// }, +// child: Container( +// width: 200.rpx, +// height: 60.rpx, +// alignment: Alignment.center, +// decoration: BoxDecoration( +// borderRadius: BorderRadius.circular(6), +// border: Border.all(color: Colors.black12)), +// child: Text( +// '$cancelName', +// style: TextStyle( +// color: Colors.black, fontSize: 30.rpx), +// ), +// ), +// ), +// ), +// Container( +// margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx), +// alignment: Alignment.center, +// child: InkWell( +// onTap: () { +// Get.back(result: "confirm"); +// }, +// child: Container( +// width: 200.rpx, +// height: 60.rpx, +// alignment: Alignment.center, +// decoration: BoxDecoration( +// borderRadius: BorderRadius.circular(6), +// color: stringToColor("#D3B684")), +// child: Text( +// '$btnName', +// style: +// TextStyle(color: Colors.white, fontSize: 30.rpx), +// ), +// ), +// ), +// ) +// ], +// ) +// ], +// ), +// ), +// ); +// }, +// ); +// } + Future showCustomConfirmOfWebViewDialog( BuildContext context, String name, String webviewUrl, {String btnName = "确定", @@ -1504,29 +1600,33 @@ Future showCustomConfirmOfWebViewDialog( context: context, barrierDismissible: true, builder: (BuildContext context) { + final screenSize = MediaQuery.of(context).size; return Dialog( - insetPadding: EdgeInsets.all(0), + backgroundColor: Colors.white, + insetPadding: EdgeInsets.zero, // 移除默认的内边距 shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), child: Container( - width: 640.rpx, + width: screenSize.width, // 使用屏幕宽度 + height: screenSize.height, // 使用屏幕高度 padding: EdgeInsets.fromLTRB(22.rpx, 0, 20.rpx, 10.rpx), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - alignment: Alignment.centerRight, - child: closeIcon, - ), - SizedBox(height: 40.rpx), // Container( - // height: MediaQuery.of(context).size.height * 0.4, - // child: Shopping( - // url: webviewUrl, - // ), + // alignment: Alignment.centerRight, + // child: closeIcon, // ), + // SizedBox(height: 40.rpx), + Expanded( + // 使用 Expanded 让 WebView 占据剩余空间 + child: PrivacyPolicyNewPage( + sleepUri: webviewUrl, + showAppbar: false, + ), + ), SizedBox(height: 20.rpx), Row( mainAxisAlignment: MainAxisAlignment.center, @@ -1555,24 +1655,51 @@ Future showCustomConfirmOfWebViewDialog( ), ), ), - Container( - margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx), - alignment: Alignment.center, - child: InkWell( - onTap: () { - Get.back(result: "confirm"); - }, - child: Container( - width: 200.rpx, - height: 60.rpx, - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6), - color: stringToColor("#D3B684")), - child: Text( - '$btnName', - style: - TextStyle(color: Colors.white, fontSize: 30.rpx), + // Container( + // margin: EdgeInsets.only(top: 50.rpx, bottom: 40.rpx), + // alignment: Alignment.center, + // child: InkWell( + // onTap: () { + // Get.back(result: "confirm"); + // }, + // child: Container( + // width: 200.rpx, + // height: 60.rpx, + // alignment: Alignment.center, + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(6), + // color: stringToColor("#D3B684")), + // child: Text( + // '$btnName', + // style: + // TextStyle(color: Colors.white, fontSize: 30.rpx), + // ), + // ), + // ), + // ) + CustomCard( + borderRadius: 12.rpx, // 圆角半径 + onTap: () { + Get.back(result: "confirm"); + }, + colors: AppConstants().mhtNormalButton, // 渐变背景 + gradientDirection: GradientDirection.horizontal, + child: Container( + // width: MediaQuery.sizeOf(context).width * 0.5, // 宽度占屏幕一半 + // height: MediaQuery.sizeOf(context).height * 0.055, + constraints: BoxConstraints( + minWidth: 200.rpx, + minHeight: 60.rpx, + ), + alignment: Alignment.center, + child: Text( + '$btnName', + style: TextStyle( + color: Colors.white, // 文字颜色 + fontFamily: 'Inter', + fontSize: AppConstants().normal_text_fontSize, // 字体大小 + fontWeight: FontWeight.w600, + letterSpacing: 0.0, ), ), ), diff --git a/lib/pages/login/th_bind_tel_page.dart b/lib/pages/login/th_bind_tel_page.dart index 1b8312e..d156937 100644 --- a/lib/pages/login/th_bind_tel_page.dart +++ b/lib/pages/login/th_bind_tel_page.dart @@ -10,6 +10,7 @@ import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/CustomCard.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; +import 'package:vbvs_app/controller/login/login_controller.dart'; import 'package:vbvs_app/controller/time/countdown_controller.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/api_response.dart'; @@ -551,7 +552,7 @@ class THBindTelWidget extends GetView { UserInfoController userInfoController = Get.find(); await userInfoController.getUserInfo(); - MHTLoginController loginController = + LoginController loginController = Get.find(); //TODO 微信回调监听操作全部跳转页面前成功以后移除监听,防止重复监听,其他方式登录成功也需要移出监听 loginController.fluwxCancelable?.cancel(); diff --git a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart index 60e8890..a3163dc 100644 --- a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart +++ b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart @@ -4,6 +4,8 @@ import 'dart:io'; import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/util/CommonVariables.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/NullDataComponentWidget.dart'; @@ -12,6 +14,7 @@ import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/WebSocketMessage.dart'; import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart'; +import 'package:vbvs_app/pages/common/selectDialog.dart'; import 'package:vbvs_app/pages/mh_page/MattressControl.dart'; import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart'; import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart'; @@ -122,8 +125,30 @@ class _HomePageState extends State } DateTime? _lastBackPressedTime; // 记录上一次返回的时间 + final getStorage = GetStorage(); @override Widget build(BuildContext context) { + // Future.delayed(const Duration(milliseconds: 0), () { + // String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog"); + // if (isShowYingShiDialog == null || isShowYingShiDialog != "true") { + // String btnName = "同意".tr; + // String cancelName = "取消".tr; + // if (Platform.isAndroid) { + // cancelName = "退出".tr; + // } + // showCustomConfirmOfWebViewDialog(context, "隐私协议".tr, getPrivacy(1), + // btnName: btnName, showCancel: true, cancelName: cancelName) + // .then((e) { + // if (e == "confirm") { + // getStorage.write("isShowYingShiDialog", "true"); + // } else { + // if (cancelName == "退出") { + // SystemNavigator.pop(); + // } + // } + // }); + // } + // }); return Obx(() { final currentLanguage = languageController.selectLanguage.value; // 监听此变量变化 diff --git a/lib/pages/main_bottom/main_page_bottom_change.dart b/lib/pages/main_bottom/main_page_bottom_change.dart index 674005a..b1d9fe5 100644 --- a/lib/pages/main_bottom/main_page_bottom_change.dart +++ b/lib/pages/main_bottom/main_page_bottom_change.dart @@ -5,6 +5,7 @@ import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:get_storage/get_storage.dart'; import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; @@ -14,6 +15,7 @@ import 'package:vbvs_app/controller/message/message_controller.dart'; import 'package:vbvs_app/controller/theme_controller/ThemeController.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/enum/LoginStatus.dart'; +import 'package:vbvs_app/pages/common/selectDialog.dart'; import 'package:vbvs_app/pages/main_bottom/e_page.dart'; import 'package:vbvs_app/pages/main_bottom/home_page.dart'; import 'package:vbvs_app/pages/main_bottom/message_page.dart'; @@ -75,16 +77,56 @@ class MainPageBottomChange extends GetView { ]; DateTime? _lastBackPressedTime; // 记录上一次返回的时间 + final getStorage = GetStorage(); @override Widget build(BuildContext context) { + Future.delayed(const Duration(milliseconds: 0), () { + String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog"); + if (isShowYingShiDialog == null || isShowYingShiDialog != "true") { + String btnName = "同意".tr; + String cancelName = "取消".tr; + if (Platform.isAndroid) { + cancelName = "退出".tr; + } + showCustomConfirmOfWebViewDialog(context, "隐私协议".tr, getPrivacy(1), + btnName: btnName, showCancel: true, cancelName: cancelName) + .then((e) { + if (e == "confirm") { + getStorage.write("isShowYingShiDialog", "true"); + } else { + if (cancelName == "退出") { + SystemNavigator.pop(); + } + } + }); + } + }); + return PopScope( canPop: false, + + // onPopInvokedWithResult: (disposition, result) async { + // if (Platform.isAndroid) { + // var flag = await _handleBackPressed(context); // 自定义返回逻辑 + // if (flag) { + // SystemNavigator.pop(); + // } + // } + // }, onPopInvokedWithResult: (disposition, result) async { + UserInfoController userInfoController = Get.find(); + if (userInfoController.model.isProgrammaticPop) { + // 如果是程序触发,重置标记并忽略 + userInfoController.model.isProgrammaticPop = false; + return; // 阻止处理 + } + if (Platform.isAndroid) { - var flag = await _handleBackPressed(context); // 自定义返回逻辑 - if (flag) { - SystemNavigator.pop(); - } + // var flag = await _handleBackPressed(context); // 自定义返回逻辑 + // if (flag) { + // SystemNavigator.pop(); + // } + Get.back(); } }, child: Obx( @@ -170,7 +212,6 @@ class MainPageBottomChange extends GetView { controller.updateAll(); }); }, - items: [ getBottomNavigationBarItem("assets/img/menu/home.svg", "assets/img/menu/n_home.svg", "菜单.首页".tr), diff --git a/lib/pages/mh_page/device/mht_bind_device_success.dart b/lib/pages/mh_page/device/mht_bind_device_success.dart index c11e9dd..ff4caf1 100644 --- a/lib/pages/mh_page/device/mht_bind_device_success.dart +++ b/lib/pages/mh_page/device/mht_bind_device_success.dart @@ -367,6 +367,7 @@ class _MHTBindDeviceSuccessState extends State { ), ), ), + ), ], ), diff --git a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart index d8a75a2..f9399f1 100644 --- a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart +++ b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart @@ -423,6 +423,8 @@ class _MhtSleepReportPageState extends State { padding: EdgeInsets.zero, borderRadius: 8, onTap: () { + sleepReportController.model.type = + 1; showSleepCalendarBottomSheet( type: sleepReportController .model.type, diff --git a/lib/pages/mh_page/user/page/mht_login_page.dart b/lib/pages/mh_page/user/page/mht_login_page.dart index 20f78ae..a1b4f85 100644 --- a/lib/pages/mh_page/user/page/mht_login_page.dart +++ b/lib/pages/mh_page/user/page/mht_login_page.dart @@ -16,6 +16,8 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/component/tool/CustomCard.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/time/countdown_controller.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; +import 'package:vbvs_app/pages/common/selectDialog.dart'; import 'package:vbvs_app/pages/mh_page/user/controller/mht_login_controller.dart'; import 'package:vbvs_app/pages/mh_page/user/controller/mht_register_controller.dart'; @@ -119,17 +121,6 @@ class MHTLoginPage extends GetView { @override Widget build(BuildContext context) { MHTRegisterController registerController = Get.find(); - bool isProgrammaticPop = false; // 标记变量 - Future.delayed(const Duration(milliseconds: 300), () { - String? isShowYingShiDialog = getStorage.read("isShowYingShiDialog"); - if (isShowYingShiDialog == null || isShowYingShiDialog != "true") { - String btnName = "同意".tr; - String cancelName = "取消".tr; - if (Platform.isAndroid) { - cancelName = "退出".tr; - } - } - }); return LayoutBuilder(builder: (context, cc) { bodysize = cc; @@ -176,21 +167,21 @@ class MHTLoginPage extends GetView { ), body: PopScope( canPop: false, - onPopInvokedWithResult: (disposition, result) async { - if (isProgrammaticPop) { - // 如果是程序触发,重置标记并忽略 - isProgrammaticPop = false; - return; // 阻止处理 - } + // onPopInvokedWithResult: (disposition, result) async { + // if (isProgrammaticPop) { + // // 如果是程序触发,重置标记并忽略 + // isProgrammaticPop = false; + // return; // 阻止处理 + // } - if (Platform.isAndroid) { - // var flag = await _handleBackPressed(context); // 自定义返回逻辑 - // if (flag) { - // SystemNavigator.pop(); - // } - Get.back(); - } - }, + // if (Platform.isAndroid) { + // // var flag = await _handleBackPressed(context); // 自定义返回逻辑 + // // if (flag) { + // // SystemNavigator.pop(); + // // } + // Get.back(); + // } + // }, child: Align( alignment: AlignmentDirectional(0, 0), child: Container( @@ -1258,8 +1249,10 @@ class MHTLoginPage extends GetView { controller.fluwxCancelable ?.cancel(); Checknetwork.subscription?.cancel(); - - isProgrammaticPop = true; + UserInfoController + userInfoController = Get.find(); + userInfoController + .model.isProgrammaticPop = true; MHTLoginController loginController = Get.find(); loginController.model.account = @@ -1445,14 +1438,6 @@ class MHTLoginPage extends GetView { 0, 0), child: InkWell( onTap: () { - // showCustomConfirmOfWebViewDialog( - // context, - // "用户协议", - // "/#/pages/agreement/agreement?type=2&hideHead=true", - // btnName: - // "同意并继续"); - // Get.toNamed( - // "/userAgreementPage"); Get.toNamed( "/userPolicyPageNew", arguments: @@ -1497,14 +1482,6 @@ class MHTLoginPage extends GetView { 0, 0), child: InkWell( onTap: () { - // showCustomConfirmOfWebViewDialog( - // context, - // "隐私协议", - // "/#/pages/agreement/agreement?type=1&hideHead=true", - // btnName: - // "同意并继续"); - // Get.toNamed( - // "/privacyPolicyPage"); Get.toNamed( "/privacyPolicyPageNew", arguments: diff --git a/lib/pages/mh_page/user/page/register_page.dart b/lib/pages/mh_page/user/page/register_page.dart index 53c4452..67d2ccf 100644 --- a/lib/pages/mh_page/user/page/register_page.dart +++ b/lib/pages/mh_page/user/page/register_page.dart @@ -948,13 +948,7 @@ class RegisterPage extends GetView { AlignmentDirectional( 0, 0), child: InkWell( - onTap: () { - // showCustomConfirmOfWebViewDialog( - // context, - // "用户协议", - // "/#/pages/agreement/agreement?type=2&hideHead=true"); - // Get.toNamed( - // "/userAgreementPage"); + onTap: () { Get.toNamed( "/userPolicyPageNew", arguments: @@ -995,13 +989,7 @@ class RegisterPage extends GetView { AlignmentDirectional( 0, 0), child: InkWell( - onTap: () { - // showCustomConfirmOfWebViewDialog( - // context, - // "隐私协议", - // "/#/pages/agreement/agreement?type=1&hideHead=true"); - // Get.toNamed( - // "/privacyPolicyPage"); + onTap: () { Get.toNamed( "/privacyPolicyPageNew", arguments: diff --git a/lib/pages/policy/privacy_policy.dart b/lib/pages/policy/privacy_policy.dart index c62a6e1..338dbc7 100644 --- a/lib/pages/policy/privacy_policy.dart +++ b/lib/pages/policy/privacy_policy.dart @@ -11,7 +11,9 @@ import 'package:vbvs_app/controller/user_info_controller.dart'; class PrivacyPolicyNewPage extends StatefulWidget { var sleepUri; - PrivacyPolicyNewPage({super.key, required this.sleepUri}); + bool showAppbar; + PrivacyPolicyNewPage( + {super.key, required this.sleepUri, this.showAppbar = true}); @override State createState() => _PrivacyPolicyNewPageState(); @@ -39,7 +41,7 @@ class _PrivacyPolicyNewPageState extends State { } @override - Widget build(BuildContext context) { + Widget build(BuildContext context) { return LayoutBuilder( builder: (context, bodySize) => GestureDetector( // onTap: () => FocusScope.of(context).unfocus(),, @@ -53,37 +55,40 @@ class _PrivacyPolicyNewPageState extends State { color: Colors.white, child: Scaffold( backgroundColor: Colors.transparent, // 背景透明 - appBar: AppBar( - backgroundColor: themeController.currentColor.sc17, - automaticallyImplyLeading: false, - iconTheme: IconThemeData(color: themeController.currentColor.sc3), - titleSpacing: 0, - title: Container( - width: double.infinity, - height: 180.rpx, - child: Stack( - alignment: Alignment.center, - children: [ - /// 居中标题 - Text( - '隐私协议'.tr, - style: TextStyle( - fontFamily: 'Readex Pro', - color: themeController.currentColor.sc3, - letterSpacing: 0, - fontSize: 30.rpx, + appBar: (widget.showAppbar != null && widget.showAppbar == false) + ? null + : AppBar( + backgroundColor: themeController.currentColor.sc17, + automaticallyImplyLeading: false, + iconTheme: + IconThemeData(color: themeController.currentColor.sc3), + titleSpacing: 0, + title: Container( + width: double.infinity, + height: 180.rpx, + child: Stack( + alignment: Alignment.center, + children: [ + /// 居中标题 + Text( + '隐私协议'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: themeController.currentColor.sc3, + letterSpacing: 0, + fontSize: 30.rpx, + ), + ), + + /// 左边返回按钮 + Positioned( + left: 0, + child: returnIconButtomNew(), + ), + ], ), ), - - /// 左边返回按钮 - Positioned( - left: 0, - child: returnIconButtomNew(), - ), - ], - ), - ), - ), + ), body: SafeArea( top: true, child: Stack( diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index fe36b1d..c2c22b0 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -11,7 +11,6 @@ import flutter_blue_plus import flutter_inappwebview_macos import flutter_localization import geolocator_apple -import google_sign_in_ios import mobile_scanner import package_info_plus import path_provider_foundation @@ -30,7 +29,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) FlutterLocalizationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalizationPlugin")) GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) - FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 6d6e0d8..7a7b422 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -591,14 +591,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.34.5" - flutter_bmflocation: - dependency: "direct main" - description: - name: flutter_bmflocation - sha256: "9d5e8cd8df4a50f41bf167ff7fb3e285e372413935c03fbae3862e58cd7926cd" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.8.0" flutter_cache_manager: dependency: transitive description: @@ -800,13 +792,13 @@ packages: source: hosted version: "5.5.2" font_awesome_flutter: - dependency: transitive + dependency: "direct overridden" description: name: font_awesome_flutter - sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a + sha256: "5fb789145cae1f4c3245c58b3f8fb287d055c26323879eab57a7bf0cfd1e45f3" url: "https://pub.flutter-io.cn" source: hosted - version: "10.8.0" + version: "10.5.0" from_css_color: dependency: transitive description: @@ -951,46 +943,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.3.3+1" - google_sign_in: - dependency: "direct main" - description: - name: google_sign_in - sha256: fad6ddc80c427b0bba705f2116204ce1173e09cf299f85e053d57a55e5b2dd56 - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.2.2" - google_sign_in_android: - dependency: transitive - description: - name: google_sign_in_android - sha256: "7af72e5502c313865c729223b60e8ae7bce0a1011b250c24edcf30d3d7032748" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.1.35" - google_sign_in_ios: - dependency: transitive - description: - name: google_sign_in_ios - sha256: "102005f498ce18442e7158f6791033bbc15ad2dcc0afa4cf4752e2722a516c96" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.9.0" - google_sign_in_platform_interface: - dependency: transitive - description: - name: google_sign_in_platform_interface - sha256: "5f6f79cf139c197261adb6ac024577518ae48fdff8e53205c5373b5f6430a8aa" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.5.0" - google_sign_in_web: - dependency: transitive - description: - name: google_sign_in_web - sha256: "460547beb4962b7623ac0fb8122d6b8268c951cf0b646dd150d60498430e4ded" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.12.4+4" googleapis_auth: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index ec8a198..d2c62c0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,8 +8,8 @@ environment: sdk: ^3.5.4 fluwx: - app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id.眠花糖 - # app_id: 'wxeb2688220799e2c5' #填写自己的 WeChat app id.太和e护 + # app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id.眠花糖 + app_id: 'wxeb2688220799e2c5' #填写自己的 WeChat app id.太和e护 debug_logging: false # Logging in debug mode. android: # interrupt_wx_request: true # Defaults to true. diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index 96ac45d..fc9e0ec 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -90,12 +90,12 @@ BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "com.taihe.mianhuatang" "\0" + VALUE "FileDescription", "com.taihe.vbvs_app" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "com.taihe.mianhuatang" "\0" + VALUE "InternalName", "com.taihe.vbvs_app" "\0" VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "com.taihe.mianhuatang.exe" "\0" - VALUE "ProductName", "com.taihe.mianhuatang" "\0" + VALUE "OriginalFilename", "com.taihe.vbvs_app.exe" "\0" + VALUE "ProductName", "com.taihe.vbvs_app" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END