import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.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 { var isFirstTime = await Storage.getString(isFirstEnter); if (isFirstTime != isFirstEnter) { showPrivacyAgreementAlert(widgetContext); } } //隐私协议弹窗 void showPrivacyAgreementAlert(BuildContext widgetContext) { showCupertinoDialog( context: widgetContext, builder: (context) { return CupertinoAlertDialog( title: const Text('用户协议和隐私政策概要\n'), content: Text.rich( TextSpan( text: '感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读', style: const TextStyle(fontSize: 16.0), children: [ TextSpan( text: '《用户协议》', style: const TextStyle( color: Colors.blue, decoration: TextDecoration.underline), recognizer: TapGestureRecognizer() ..onTap = () { // 处理用户协议点击事件 _launchURL(XSConstantMacro.userAgreementURL); }, ), const TextSpan(text: '和'), TextSpan( text: '《隐私政策》', style: const TextStyle( color: Colors.blue, decoration: TextDecoration.underline), recognizer: TapGestureRecognizer() ..onTap = () { // 处理隐私政策点击事件 _launchURL(XSConstantMacro.privacyPolicyURL); }, ), const TextSpan( text: '的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。'), ], ), ), actions: [ CupertinoDialogAction( child: const Text( '不同意', style: TextStyle(color: Colors.black), ), onPressed: () { _exitApp(); }, ), CupertinoDialogAction( child: const Text( '同意', style: TextStyle(color: Colors.blue), ), onPressed: () { Storage.setString(isFirstEnter, isFirstEnter); Navigator.of(context).pop(); }, ), ], ); }, ); } _launchURL(String url) async { if (await canLaunchUrl(Uri.parse(url))) { await launchUrl(Uri.parse(url)); } else { throw '无法打开链接 $url'; } } void _exitApp() { exit(0); // 退出应用程序 } }