Merge remote-tracking branch 'origin/master'

This commit is contained in:
葛佳祥 2024-03-11 15:47:51 +08:00
commit b39b5a8748
5 changed files with 71 additions and 32 deletions

View File

@ -0,0 +1,25 @@
import 'package:star_lock/mine/about/webviewShow_state.dart';
import '../../tools/baseGetXController.dart';
class WebviewShowLogic extends BaseGetXController {
final WebviewShowState state = WebviewShowState();
@override
Future<void> onReady() async {
print("ready home");
super.onReady();
}
@override
void onInit() {
print("init home");
super.onInit();
}
@override
void onClose() {
print("close home");
super.onClose();
}
}

View File

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/mine/about/webviewShow_logic.dart';
import 'package:star_lock/tools/titleAppBar.dart'; import 'package:star_lock/tools/titleAppBar.dart';
import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter/webview_flutter.dart';
@ -11,30 +13,17 @@ class WebviewShowPage extends StatefulWidget {
} }
class _WebviewShowPageState extends State<WebviewShowPage> { class _WebviewShowPageState extends State<WebviewShowPage> {
late WebViewController _webViewController; final logic = Get.put(WebviewShowLogic());
String _webURL = ''; final state = Get.find<WebviewShowLogic>().state;
String _webTitle = '';
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_webViewController = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted);
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
dynamic obj = ModalRoute.of(context)?.settings.arguments; state.webViewController.loadRequest(Uri.parse(state.webURL));
if (obj != null && (obj["url"] != null)) {
_webURL = obj["url"];
}
if (obj != null && (obj["title"] != null)) {
_webTitle = obj["title"];
}
_webViewController.loadRequest(Uri.parse(_webURL));
return Scaffold( return Scaffold(
resizeToAvoidBottomInset: false, resizeToAvoidBottomInset: false,
backgroundColor: const Color(0xFFFFFFFF), backgroundColor: const Color(0xFFFFFFFF),
@ -43,12 +32,12 @@ class _WebviewShowPageState extends State<WebviewShowPage> {
haveBack: true, haveBack: true,
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
), ),
body: WebViewWidget(controller: _webViewController)); body: WebViewWidget(controller: state.webViewController));
} }
String getWebTitle() { String getWebTitle() {
String webTitleStr = _webTitle; String webTitleStr = state.webTitle;
_webViewController.getTitle().then((result) { state.webViewController.getTitle().then((result) {
webTitleStr = result!; webTitleStr = result!;
}); });
return webTitleStr; return webTitleStr;

View File

@ -0,0 +1,15 @@
import 'package:get/get.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebviewShowState {
late WebViewController webViewController = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted);
var webURL = '';
var webTitle = '';
WebviewShowState() {
Map map = Get.arguments;
webURL = map["url"];
webTitle = map['title'];
}
}

View File

@ -19,9 +19,12 @@ class StarLockMineLogic extends BaseGetXController {
print("ready home"); print("ready home");
super.onReady(); super.onReady();
state.userNickName.value = (await Storage.getNickname())!; final data = await Storage.getString(saveUserLoginData);
state.userMobile.value = (await Storage.getMobile())!; if (data != null && data.isNotEmpty) {
state.userEmail.value = (await Storage.getEmail())!; state.userNickName.value = (await Storage.getNickname())!;
state.userMobile.value = (await Storage.getMobile())!;
state.userEmail.value = (await Storage.getEmail())!;
}
} }
@override @override

View File

@ -3,9 +3,10 @@ import 'dart:io';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/storage.dart';
import 'package:url_launcher/url_launcher.dart';
class AppFirstEnterHandle { class AppFirstEnterHandle {
Future getAppFirstEnter(BuildContext widgetContext) async { Future getAppFirstEnter(BuildContext widgetContext) async {
@ -34,7 +35,10 @@ class AppFirstEnterHandle {
recognizer: TapGestureRecognizer() recognizer: TapGestureRecognizer()
..onTap = () { ..onTap = () {
// //
_launchURL(XSConstantMacro.userAgreementURL); Get.toNamed(Routers.webviewShowPage, arguments: {
"url": XSConstantMacro.userAgreementURL,
"title": '用户协议'
});
}, },
), ),
const TextSpan(text: ''), const TextSpan(text: ''),
@ -45,7 +49,10 @@ class AppFirstEnterHandle {
recognizer: TapGestureRecognizer() recognizer: TapGestureRecognizer()
..onTap = () { ..onTap = () {
// //
_launchURL(XSConstantMacro.privacyPolicyURL); Get.toNamed(Routers.webviewShowPage, arguments: {
"url": XSConstantMacro.privacyPolicyURL,
"title": '隐私政策'
});
}, },
), ),
const TextSpan( const TextSpan(
@ -80,13 +87,13 @@ class AppFirstEnterHandle {
); );
} }
_launchURL(String url) async { // _launchURL(String url) async {
if (await canLaunchUrl(Uri.parse(url))) { // if (await canLaunchUrl(Uri.parse(url))) {
await launchUrl(Uri.parse(url)); // await launchUrl(Uri.parse(url));
} else { // } else {
throw '无法打开链接 $url'; // throw '无法打开链接 $url';
} // }
} // }
void _exitApp() { void _exitApp() {
exit(0); // 退 exit(0); // 退