The code below (which has taken from example and a little bit modified) leads to this:
import 'package:flutter/material.dart';
import 'common_widgets.dart';
import 'package:flutter_telegram_web_app/flutter_telegram_web_app.dart' as tg;
import 'package:flutter_telegram_web_app/flutter_telegram_web_app.dart';
import 'main.dart';
class HomeView extends StatefulWidget {
const HomeView({super.key});
@override
State<HomeView> createState() => _HomeViewState();
}
class _HomeViewState extends State<HomeView> {
String? qrText = "No QR yet...";
bool isStateStable = true;
@override
void initState() {
onEvent(TelegramWebEventType.qrTextReceived, JsCallback<dynamic>((data) {
String text = '';
try {
text = "${data?.toString() ?? 'data is null'} of type ${data
?.runtimeType ?? ''}";
} catch (e) {
text = "Error: $e {$data}";
}
showAlert(text);
qrText = text;
setState(() {});
tg.closeScanQrPopup();
}));
TelegramWebEvent.setThemeChangeListener(
(bool isDarkMode, ThemeParams themeParams) {
setState(() {});
updateThemeMode();
});
TelegramWebEvent.setViewPortChangeListener(
(bool isStable, height, stableHeight) {
setState(() {
isStateStable = isStable;
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body:
Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(qrText ?? 'No QR yet...'),
KButton(
text: "Open QR Scanner",
onTap: () => tg.showScanQrPopup((
text: "Scan QR",
JsCallback<dynamic>((data) {
showAlert("${data?.toString() ?? 'data is null'} of type ${data?.runtimeType ?? ''}");
qrText = "${data?.toString() ?? 'data is null'} of type ${data?.runtimeType ?? ''}";
tg.closeScanQrPopup();
})
))
)
])
)
);
}
}
Any ideas could help.