diff --git a/star_lock/lib/mine/about/webviewShow_logic.dart b/star_lock/lib/mine/about/webviewShow_logic.dart new file mode 100644 index 00000000..9ee40aa5 --- /dev/null +++ b/star_lock/lib/mine/about/webviewShow_logic.dart @@ -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 onReady() async { + print("ready home"); + super.onReady(); + } + + @override + void onInit() { + print("init home"); + super.onInit(); + } + + @override + void onClose() { + print("close home"); + super.onClose(); + } +} diff --git a/star_lock/lib/mine/about/webviewShow_page.dart b/star_lock/lib/mine/about/webviewShow_page.dart index 5e32cf5a..811c316b 100644 --- a/star_lock/lib/mine/about/webviewShow_page.dart +++ b/star_lock/lib/mine/about/webviewShow_page.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:get/get.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:webview_flutter/webview_flutter.dart'; @@ -11,30 +13,17 @@ class WebviewShowPage extends StatefulWidget { } class _WebviewShowPageState extends State { - late WebViewController _webViewController; - String _webURL = ''; - String _webTitle = ''; + final logic = Get.put(WebviewShowLogic()); + final state = Get.find().state; @override void initState() { super.initState(); - - _webViewController = WebViewController() - ..setJavaScriptMode(JavaScriptMode.unrestricted); } @override Widget build(BuildContext context) { - dynamic obj = ModalRoute.of(context)?.settings.arguments; - if (obj != null && (obj["url"] != null)) { - _webURL = obj["url"]; - } - - if (obj != null && (obj["title"] != null)) { - _webTitle = obj["title"]; - } - - _webViewController.loadRequest(Uri.parse(_webURL)); + state.webViewController.loadRequest(Uri.parse(state.webURL)); return Scaffold( resizeToAvoidBottomInset: false, backgroundColor: const Color(0xFFFFFFFF), @@ -43,12 +32,12 @@ class _WebviewShowPageState extends State { haveBack: true, backgroundColor: AppColors.mainColor, ), - body: WebViewWidget(controller: _webViewController)); + body: WebViewWidget(controller: state.webViewController)); } String getWebTitle() { - String webTitleStr = _webTitle; - _webViewController.getTitle().then((result) { + String webTitleStr = state.webTitle; + state.webViewController.getTitle().then((result) { webTitleStr = result!; }); return webTitleStr; diff --git a/star_lock/lib/mine/about/webviewShow_state.dart b/star_lock/lib/mine/about/webviewShow_state.dart new file mode 100644 index 00000000..40d37a4d --- /dev/null +++ b/star_lock/lib/mine/about/webviewShow_state.dart @@ -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']; + } +} diff --git a/star_lock/lib/mine/mine/starLockMine_logic.dart b/star_lock/lib/mine/mine/starLockMine_logic.dart index a201fa44..2c4a5fa2 100644 --- a/star_lock/lib/mine/mine/starLockMine_logic.dart +++ b/star_lock/lib/mine/mine/starLockMine_logic.dart @@ -19,9 +19,12 @@ class StarLockMineLogic extends BaseGetXController { print("ready home"); super.onReady(); - state.userNickName.value = (await Storage.getNickname())!; - state.userMobile.value = (await Storage.getMobile())!; - state.userEmail.value = (await Storage.getEmail())!; + final data = await Storage.getString(saveUserLoginData); + if (data != null && data.isNotEmpty) { + state.userNickName.value = (await Storage.getNickname())!; + state.userMobile.value = (await Storage.getMobile())!; + state.userEmail.value = (await Storage.getEmail())!; + } } @override diff --git a/star_lock/lib/tools/appFirstEnterHandle.dart b/star_lock/lib/tools/appFirstEnterHandle.dart index 65f6fc91..067a2b7c 100644 --- a/star_lock/lib/tools/appFirstEnterHandle.dart +++ b/star_lock/lib/tools/appFirstEnterHandle.dart @@ -3,9 +3,10 @@ import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/gestures.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/tools/storage.dart'; -import 'package:url_launcher/url_launcher.dart'; class AppFirstEnterHandle { Future getAppFirstEnter(BuildContext widgetContext) async { @@ -34,7 +35,10 @@ class AppFirstEnterHandle { recognizer: TapGestureRecognizer() ..onTap = () { // 处理用户协议点击事件 - _launchURL(XSConstantMacro.userAgreementURL); + Get.toNamed(Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.userAgreementURL, + "title": '用户协议' + }); }, ), const TextSpan(text: '和'), @@ -45,7 +49,10 @@ class AppFirstEnterHandle { recognizer: TapGestureRecognizer() ..onTap = () { // 处理隐私政策点击事件 - _launchURL(XSConstantMacro.privacyPolicyURL); + Get.toNamed(Routers.webviewShowPage, arguments: { + "url": XSConstantMacro.privacyPolicyURL, + "title": '隐私政策' + }); }, ), const TextSpan( @@ -80,13 +87,13 @@ class AppFirstEnterHandle { ); } - _launchURL(String url) async { - if (await canLaunchUrl(Uri.parse(url))) { - await launchUrl(Uri.parse(url)); - } else { - throw '无法打开链接 $url'; - } - } + // _launchURL(String url) async { + // if (await canLaunchUrl(Uri.parse(url))) { + // await launchUrl(Uri.parse(url)); + // } else { + // throw '无法打开链接 $url'; + // } + // } void _exitApp() { exit(0); // 退出应用程序