feat(spoof): пер-аккаунтный спуф с тумблером и прокидыванием в веб-аппы
- спуф теперь свой на каждый аккаунт, вмораживается при входе - тумблер вкл/выкл в настройках (по умолчанию выключен) - новый аккаунт добавляется со своим включённым спуфом (другое устройство) - UA спуфа прокинут в Сферум, Цифровой ID (вебвью + HTTP) - генерация выбирает Android или iOS; iOS отдаёт deviceType IOS - экран спуфа показывает текущую личность, а не свежесгенерированную
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import 'package:material_symbols_icons/symbols.dart';
|
||||
|
||||
import '../../../backend/modules/webapp.dart';
|
||||
import '../../../core/storage/spoofing_service.dart';
|
||||
import '../../../main.dart' show webAppModule, digitalIdModule;
|
||||
import '../../widgets/connection_status.dart';
|
||||
import '../../widgets/webview_permission_prompt.dart';
|
||||
@@ -175,6 +176,7 @@ class _DigitalIdWebScreenState extends State<DigitalIdWebScreen> {
|
||||
InAppWebViewController? _controller;
|
||||
WebAppLaunch? _launch;
|
||||
String? _loadError;
|
||||
String _userAgent = '';
|
||||
double _progress = 0;
|
||||
|
||||
@override
|
||||
@@ -189,6 +191,7 @@ class _DigitalIdWebScreenState extends State<DigitalIdWebScreen> {
|
||||
_launch = null;
|
||||
});
|
||||
try {
|
||||
_userAgent = await SpoofingService.getWebViewUserAgent() ?? '';
|
||||
final launch = await webAppModule.fetchDigitalId();
|
||||
if (!mounted) return;
|
||||
setState(() => _launch = launch);
|
||||
@@ -280,6 +283,7 @@ class _DigitalIdWebScreenState extends State<DigitalIdWebScreen> {
|
||||
mediaPlaybackRequiresUserGesture: false,
|
||||
useHybridComposition: true,
|
||||
useShouldOverrideUrlLoading: true,
|
||||
userAgent: _userAgent,
|
||||
),
|
||||
onWebViewCreated: (controller) {
|
||||
_controller = controller;
|
||||
|
||||
Reference in New Issue
Block a user