Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
b39b5a8748
25
star_lock/lib/mine/about/webviewShow_logic.dart
Normal file
25
star_lock/lib/mine/about/webviewShow_logic.dart
Normal 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();
|
||||
}
|
||||
}
|
||||
@ -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<WebviewShowPage> {
|
||||
late WebViewController _webViewController;
|
||||
String _webURL = '';
|
||||
String _webTitle = '';
|
||||
final logic = Get.put(WebviewShowLogic());
|
||||
final state = Get.find<WebviewShowLogic>().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<WebviewShowPage> {
|
||||
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;
|
||||
|
||||
15
star_lock/lib/mine/about/webviewShow_state.dart
Normal file
15
star_lock/lib/mine/about/webviewShow_state.dart
Normal 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'];
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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); // 退出应用程序
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user