Flutter应用安全检测插件flutter_app_security_detected的使用
Flutter应用安全检测插件flutter_app_security_detected的使用
flutter_app_security_detected

高功能的Flutter应用安全检测插件。
禁用检测

启用检测

功能
- 启用或禁用安全检测。
- 更改对话框样式。
使用
请查看 示例代码。
安装
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter_app_security_detected: ^1.0.0
基本设置
完整的示例代码可以在 这里 查看。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
FlutterAppSecurityDetectedConfig().setConfig(
allowSecurityDetected: true,
securityDetectedTitle: "安全检测",
securityDetectedMessage:
"此应用程序将在越狱设备或开发模式下无法运行。",
securityDetectedTitleButton: "关闭",
callback: (jailbroken, developerMode) {
print(jailbroken);
print(developerMode);
},
textTitleStyle: const TextStyle(
color: Colors.red,
fontSize: 30,
),
textBodyStyle: TextStyle(
fontSize: 20,
color: Colors.red.withAlpha(100),
),
textButtonStyle: const TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
fontSize: 20,
),
);
runApp(const MyApp());
}
继承我们的类
为了扩展你的Flutter状态fulWidget,继承以下类:
FlutterAppSecurityDetectedStatefulWidget
FlutterAppSecurityDetectedStatefulWidgetState
class FlutterAppSecurityDetectedExample
extends FlutterAppSecurityDetectedStatefulWidget {
[@override](/user/override)
FlutterAppSecurityDetectedExampleState createState() => FlutterAppSecurityDetectedExampleState();
}
class FlutterAppSecurityDetectedExampleState
extends FlutterAppSecurityDetectedStatefulWidgetState<FlutterAppSecurityDetectedExample> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("安全检测")),
body: const Center(
child: Text("示例安全检测"),
),
);
}
}
事件
使用 callback
返回设备检测的状态:
callback: (jailbroken, developerMode) {
print(jailbroken);
print(developerMode);
}
示例代码
示例文件: main.dart
import 'package:flutter/material.dart';
import 'package:flutter_app_security_detected/flutter_app_security_detected.dart';
import 'flutter_app_security_detected_example.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
FlutterAppSecurityDetectedConfig().setConfig(
allowSecurityDetected: true,
securityDetectedTitle: "安全检测",
securityDetectedMessage:
"此应用程序将在越狱设备或开发模式下无法运行。",
securityDetectedTitleButton: "关闭",
callback: (jailbroken, developerMode) {
print(jailbroken);
print(developerMode);
},
textTitleStyle: const TextStyle(
color: Colors.red,
fontSize: 30,
),
textBodyStyle: TextStyle(
fontSize: 20,
color: Colors.red.withAlpha(100),
),
textButtonStyle: const TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
fontSize: 20,
),
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: FlutterAppSecurityDetectedExample(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'你已经按下了按钮这么多次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
),
);
}
}
更多关于Flutter应用安全检测插件flutter_app_security_detected的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用安全检测插件flutter_app_security_detected的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter应用中使用flutter_app_security_detected
插件的一个基本示例。这个插件通常用于检测一些常见的安全威胁,比如屏幕截图、调试模式等。
首先,确保你已经在pubspec.yaml
文件中添加了flutter_app_security_detected
依赖:
dependencies:
flutter:
sdk: flutter
flutter_app_security_detected: ^最新版本号 # 请替换为实际最新版本号
然后运行flutter pub get
来获取依赖。
接下来,在你的Flutter应用中,你可以按照以下步骤来使用这个插件:
- 导入插件:
在你的Dart文件中导入插件:
import 'package:flutter_app_security_detected/flutter_app_security_detected.dart';
- 初始化插件:
在你的应用的主文件中(通常是main.dart
),初始化插件并设置监听器:
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化插件
FlutterAppSecurityDetected().initialize().then((_) {
// 设置监听器
FlutterAppSecurityDetected().addAppSecurityListener((event) {
if (event is ScreenshotDetected) {
// 检测到屏幕截图
print("Screenshot detected!");
// 可以在这里添加处理逻辑,比如显示警告或清除敏感信息
} else if (event is DebuggingDetected) {
// 检测到调试模式
print("Debugging mode detected!");
// 可以在这里添加处理逻辑,比如退出应用或显示警告
} else if (event is OverlayWindowsDetected) {
// 检测到其他覆盖窗口(比如悬浮窗)
print("Overlay windows detected!");
// 可以在这里添加处理逻辑
}
// 可以根据需要添加更多事件处理
});
});
runApp(MyApp());
}
- 在你的应用中显示UI:
这是一个简单的示例应用,它使用上述插件来检测安全威胁:
import 'package:flutter/material.dart';
import 'package:flutter_app_security_detected/flutter_app_security_detected.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
FlutterAppSecurityDetected().initialize().then((_) {
FlutterAppSecurityDetected().addAppSecurityListener((event) {
if (event is ScreenshotDetected) {
print("Screenshot detected!");
} else if (event is DebuggingDetected) {
print("Debugging mode detected!");
} else if (event is OverlayWindowsDetected) {
print("Overlay windows detected!");
}
});
});
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter App Security Demo'),
),
body: Center(
child: Text('Check the console for security detection events.'),
),
),
);
}
}
这个示例展示了如何初始化flutter_app_security_detected
插件并设置监听器来检测屏幕截图、调试模式和覆盖窗口。当检测到这些事件时,它会在控制台中打印一条消息。你可以根据需要扩展这些事件处理逻辑,比如显示警告消息、清除敏感信息或退出应用。
请注意,这个插件的功能和API可能会随着版本的更新而变化,所以请参考最新的官方文档来获取最新的信息和最佳实践。