From 1fc54d7526dbc2b2fd7c88c2b078de3b358f5950 Mon Sep 17 00:00:00 2001
From: "DESKTOP-I3JPKHK\\wy" <1111>
Date: Mon, 29 Sep 2025 13:39:37 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../android/app/src/main/AndroidManifest.xml | 14 +++-----
.../app/src/profile/AndroidManifest.xml | 4 +--
.../login_page/children/agreement_page.dart | 11 ++++++-
.../page/login_page/children/register.dart | 11 ++++---
.../lib/page/login_page/login_view.dart | 33 ++++++++++++-------
making_school_asignment_app/pubspec.yaml | 2 +-
6 files changed, 47 insertions(+), 28 deletions(-)
diff --git a/making_school_asignment_app/android/app/src/main/AndroidManifest.xml b/making_school_asignment_app/android/app/src/main/AndroidManifest.xml
index 8a5f579..f91ee30 100644
--- a/making_school_asignment_app/android/app/src/main/AndroidManifest.xml
+++ b/making_school_asignment_app/android/app/src/main/AndroidManifest.xml
@@ -87,25 +87,21 @@
-
+
-
-
+
+
\ No newline at end of file
diff --git a/making_school_asignment_app/android/app/src/profile/AndroidManifest.xml b/making_school_asignment_app/android/app/src/profile/AndroidManifest.xml
index 000faeb..513286b 100644
--- a/making_school_asignment_app/android/app/src/profile/AndroidManifest.xml
+++ b/making_school_asignment_app/android/app/src/profile/AndroidManifest.xml
@@ -30,8 +30,8 @@
-
+
diff --git a/making_school_asignment_app/lib/page/login_page/children/agreement_page.dart b/making_school_asignment_app/lib/page/login_page/children/agreement_page.dart
index a741b6f..092dfeb 100644
--- a/making_school_asignment_app/lib/page/login_page/children/agreement_page.dart
+++ b/making_school_asignment_app/lib/page/login_page/children/agreement_page.dart
@@ -21,7 +21,16 @@ class AgreementPage extends StatelessWidget {
body: ListView(
padding: EdgeInsets.symmetric(horizontal: 14.w, vertical: 8.h),
children: [
- HtmlWidget(agreement.richText, textStyle: const TextStyle(color: Colors.black)),
+ HtmlWidget(
+ agreement.richText,
+ textStyle: const TextStyle(color: Colors.black),
+ // 禁用文本选择,避免触发剪切板访问
+ renderMode: RenderMode.column,
+ // 禁用所有交互
+ onTapUrl: (url) => false,
+ // 自定义样式,确保安全
+ customStylesBuilder: (element) => {},
+ ),
],
),
);
diff --git a/making_school_asignment_app/lib/page/login_page/children/register.dart b/making_school_asignment_app/lib/page/login_page/children/register.dart
index d2fe094..089a739 100644
--- a/making_school_asignment_app/lib/page/login_page/children/register.dart
+++ b/making_school_asignment_app/lib/page/login_page/children/register.dart
@@ -1,4 +1,3 @@
-import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
@@ -148,6 +147,7 @@ class _RegisterState extends State with RequestToolMixin {
maxLines: 1,
maxLength: 20,
textInputAction: TextInputAction.next,
+ enableInteractiveSelection: false,
onEditingComplete: () {
FocusScope.of(context).requestFocus(_pwdFocus);
},
@@ -169,6 +169,7 @@ class _RegisterState extends State with RequestToolMixin {
maxLines: 1,
obscureText: _isShowPwd, //隐藏密码显示
textInputAction: TextInputAction.go,
+ enableInteractiveSelection: false,
onSubmitted: (_) => toRegister(),
style: TextStyle(
color: const Color.fromRGBO(80, 87, 103, 1),
@@ -249,7 +250,8 @@ class _RegisterState extends State with RequestToolMixin {
),
InkWell(
onTap: () {
- Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
+ Get.toNamed(Routes.agreementPage,
+ arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
},
child: quickText(
'《用户协议》',
@@ -259,12 +261,13 @@ class _RegisterState extends State with RequestToolMixin {
),
InkWell(
onTap: () {
- Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.PRIVACY_GREEMENT.name});
+ Get.toNamed(Routes.agreementPage,
+ arguments: {"type": AGREEMENT_KEY.PRIVACY_GREEMENT.name});
},
child: quickText(
'《隐私协议》',
size: 12.sp,
- color:Theme.of(context).primaryColor,
+ color: Theme.of(context).primaryColor,
),
),
],
diff --git a/making_school_asignment_app/lib/page/login_page/login_view.dart b/making_school_asignment_app/lib/page/login_page/login_view.dart
index 964aa0a..7bca5b1 100644
--- a/making_school_asignment_app/lib/page/login_page/login_view.dart
+++ b/making_school_asignment_app/lib/page/login_page/login_view.dart
@@ -1,7 +1,7 @@
-import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:get/get.dart';
import 'package:making_school_asignment_app/common/const_text.dart';
import 'package:making_school_asignment_app/common/utils/anti_shake_throttling.dart';
import 'package:making_school_asignment_app/common/utils/app_upgrade/upgradeLogic.dart';
@@ -33,6 +33,7 @@ class _LoginPageState extends State {
WidgetsBinding.instance.addPostFrameCallback((_) async {
await sysProtocol(context);
+
/// 为了发布各平台方便审核 不能再登陆页面直接弹出审核
// await Future.delayed(Duration.zero, () => upgradeLogic.getAppUpgrade(context));
});
@@ -88,7 +89,8 @@ class _LoginPageState extends State {
padding: EdgeInsets.only(top: 50.h, bottom: 16.h, left: 40.w, right: 40.w),
decoration: BoxDecoration(
color: Colors.white,
- borderRadius: BorderRadius.only(topLeft: Radius.circular(30.r), topRight: Radius.circular(30.r)),
+ borderRadius:
+ BorderRadius.only(topLeft: Radius.circular(30.r), topRight: Radius.circular(30.r)),
/*boxShadow: const [
BoxShadow(
color: Color.fromRGBO(46, 91, 255, 0.1),
@@ -112,6 +114,7 @@ class _LoginPageState extends State {
controller: state.userNameController,
/* maxLines: 1,
maxLength: 20,*/
+ enableInteractiveSelection: false,
textInputAction: TextInputAction.next,
onEditingComplete: () {
Get.focusScope?.nextFocus();
@@ -169,10 +172,12 @@ class _LoginPageState extends State {
//隐藏密码显示
// textInputAction: state.isShowPwd.value?TextInputAction.go:TextInputAction.next,
textInputAction: TextInputAction.send,
- onSubmitted: (_) => easyThrottle('LOGIN_EASYTHROTTLE', () async{
+ enableInteractiveSelection: false,
+ onSubmitted: (_) => easyThrottle('LOGIN_EASYTHROTTLE', () async {
Utils.hideKeyboard();
await Future.delayed(const Duration(milliseconds: 300));
- WidgetsBinding.instance.addPostFrameCallback((_) => logic.toLogin(context,upgradeLogic));
+ WidgetsBinding.instance
+ .addPostFrameCallback((_) => logic.toLogin(context, upgradeLogic));
}),
style: TextStyle(
color: const Color(0xFF434343),
@@ -203,7 +208,9 @@ class _LoginPageState extends State {
child: Padding(
padding: EdgeInsets.only(right: 5.r),
child: Image.asset(
- state.isShowPwd.value ? 'assets/images/eye_default.png' : 'assets/images/eye_active.png',
+ state.isShowPwd.value
+ ? 'assets/images/eye_default.png'
+ : 'assets/images/eye_active.png',
width: 15.r,
height: 15.r,
),
@@ -252,7 +259,8 @@ class _LoginPageState extends State {
(Set states) {
if (states.contains(WidgetState.selected)) {
//修改勾选时边框颜色为红色
- return BorderSide(width: 1.5.r, color: Theme.of(context).primaryColor);
+ return BorderSide(
+ width: 1.5.r, color: Theme.of(context).primaryColor);
}
//修改默认时边框颜色为绿色
return BorderSide(width: 1.r, color: const Color(0xFF434343));
@@ -288,10 +296,10 @@ class _LoginPageState extends State {
],
),
InkWell(
- onTap: () => easyThrottle('LOGIN_EASYTHROTTLE', () async{
+ onTap: () => easyThrottle('LOGIN_EASYTHROTTLE', () async {
Utils.hideKeyboard();
await Future.delayed(Duration.zero);
- WidgetsBinding.instance.addPostFrameCallback((_) => logic.toLogin(context,upgradeLogic));
+ WidgetsBinding.instance.addPostFrameCallback((_) => logic.toLogin(context, upgradeLogic));
}),
child: Obx(() {
return Container(
@@ -353,7 +361,8 @@ class _LoginPageState extends State {
),
InkWell(
onTap: () {
- Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
+ Get.toNamed(Routes.agreementPage,
+ arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
},
child: quickText(
'请仔细阅读',
@@ -362,7 +371,8 @@ class _LoginPageState extends State {
),
InkWell(
onTap: () {
- Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
+ Get.toNamed(Routes.agreementPage,
+ arguments: {"type": AGREEMENT_KEY.USER_AGREEMENT.name});
},
child: Text(
'《用户协议》',
@@ -371,7 +381,8 @@ class _LoginPageState extends State {
),
InkWell(
onTap: () {
- Get.toNamed(Routes.agreementPage, arguments: {"type": AGREEMENT_KEY.PRIVACY_GREEMENT.name});
+ Get.toNamed(Routes.agreementPage,
+ arguments: {"type": AGREEMENT_KEY.PRIVACY_GREEMENT.name});
},
child: quickText(
'《隐私协议》',
diff --git a/making_school_asignment_app/pubspec.yaml b/making_school_asignment_app/pubspec.yaml
index 9f5d474..845d967 100644
--- a/making_school_asignment_app/pubspec.yaml
+++ b/making_school_asignment_app/pubspec.yaml
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
-version: 1.0.6+7
+version: 1.0.7+8
environment:
sdk: '>=3.4.1 <4.0.0'