Files
Qlyra/lib/frontend/screens/digital_id/digital_id_web_screen.dart
T
sevenhill 50816588e4
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Update Qlyra application
2026-08-30 22:53:15 +03:00

56 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import '../../../backend/modules/webapp.dart' show WebAppLaunch;
import '../../../core/utils/logger.dart';
import '../../../main.dart' show digitalIdModule, webAppModule;
import '../webapp/web_app_screen.dart';
Future<void> resetDigitalIdWebData() async {
await CookieManager.instance().deleteAllCookies();
try {
await WebStorageManager.instance().deleteAllData();
} catch (_) {}
}
Future<void> resetDigitalIdSession() async {
digitalIdModule.reset();
try {
await resetDigitalIdWebData();
} catch (_) {}
}
class DigitalIdWebScreen extends StatelessWidget {
final WebAppLaunch? initialLaunch;
const DigitalIdWebScreen({super.key, this.initialLaunch});
@override
Widget build(BuildContext context) {
return WebAppScreen(
title: 'Цифровой ID',
preferSystemUserAgent: true,
privateChannel: true,
mobileIdVerifier: digitalIdModule.fetchMobileIdVerification,
loader: () async => initialLaunch ?? await webAppModule.fetchDigitalId(),
onExternalCallback: webAppModule.handleExternalCallback,
onConsoleMessage: (controller, consoleMessage) {
final msg = '[DID] ${consoleMessage.message}';
final lvl = consoleMessage.messageLevel.toString().toUpperCase();
if (lvl.contains('ERROR')) {
logger.e(msg);
} else if (lvl.contains('WARNING')) {
logger.w(msg);
} else {
logger.i(msg);
}
},
onLoadStart: (controller, url) {
if (url != null) {
logger.i('[DID] loadStart: ${url.scheme}://${url.host}${url.path}');
}
},
);
}
}