🚨 Глобальное логирование в Telegram
Чтобы не гадать, почему у пользователя упало приложение, можно настроить автоматическую отправку отчетов об ошибках в ваш Telegram-бот.
🛠 Реализация (talker_flutter)
Система перехватывает все асинхронные и синхронные ошибки и шлет их вам в чат. Также доступен секретный экран логов по жесту “тряска телефона”.
Шаг 1: Настройка зависимостей (pubspec.yaml)
dependencies:
talker_flutter: ^4.6.1
shake_gesture: ^2.0.0
http: ^1.4.0Шаг 2: Код сервиса
Создайте Custom File TalkerService.dart. В нем реализуйте отправку через Telegram Bot API:
Future<void> _sendToTelegram({required String error, String? stackTrace}) async {
final url = Uri.parse('https://api.telegram.org/bot[TOKEN]/sendMessage');
await http.post(url, body: {
'chat_id': '[CHAT_ID]',
'text': '🚨 Ошибка: $error\n📍 Stack: $stackTrace',
'parse_mode': 'Markdown',
});
}Шаг 3: Инициализация в main.dart
Оберните запуск приложения в runZonedGuarded, чтобы ловить асинхронные ошибки:
void main() {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
// Инициализация логгера...
runApp(MyApp());
}, (error, stack) {
// Отправка в Telegram
logException(error, stack);
});
}📱 Экран логов при тряске
Добавьте виджет ShakeGesture поверх вашего приложения. При встряхивании телефона (только для разрешенных админов) будет открываться интерфейс со списком всех последних действий и ошибок.
📺 Рекомендуемые видео
- n8n: Полный обзор и туториал — Автоматизация отправки логов и уведомлений через n8n-воркфлоу.
Автор решения: Валерий Парфёнов