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
56 lines
1.7 KiB
Dart
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}');
|
|
}
|
|
},
|
|
);
|
|
}
|
|
}
|