rationalowl_flutter 1.0.0 copy "rationalowl_flutter: ^1.0.0" to clipboard
rationalowl_flutter: ^1.0.0 copied to clipboard

Flutter plugin for RationalOwl, a realtime mobile messaging service

example/lib/main.dart

import 'dart:io';

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:rationalowl_flutter/rationalowl_flutter.dart';

import 'firebase_messaging_handlers.dart';
import 'firebase_options.dart';
import 'local_notifications.dart';
import 'main_page.dart';
import 'ro_message_listener.dart';

const iOSAppGroup = 'group.com.rationalowl.flutterexample';

Future<void> _initialize() async {
  if (Platform.isAndroid) {
    await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
    FirebaseMessaging.onBackgroundMessage(handleMessage);
  }

  await initializeNotification();

  final MinervaManager minMgr = MinervaManager.getInstance();

  if (Platform.isIOS) {
    await minMgr.setAppGroup(iOSAppGroup);
  }

  await minMgr.setMsgListener(RoMessageListener());
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await _initialize();

  runApp(const Application());
}

class Application extends StatefulWidget {
  const Application({super.key});

  @override
  State<StatefulWidget> createState() => _ApplicationState();
}

class _ApplicationState extends State<Application> with WidgetsBindingObserver {
  late final MinervaAppLifecycleObserver _observer;

  @override
  void initState() {
    super.initState();

    if (Platform.isIOS) {
      _observer = MinervaAppLifecycleObserver();
      WidgetsBinding.instance.addObserver(_observer);
    } else {
      FirebaseMessaging.onMessage.listen(handleMessage);
      FirebaseMessaging.instance.onTokenRefresh.listen(handleTokenRefresh);
    }
  }

  @override
  void dispose() {
    if (Platform.isIOS) {
      WidgetsBinding.instance.removeObserver(_observer);
    }

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: MainPage(),
        ),
      ),
    );
  }
}
3
likes
0
points
33
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for RationalOwl, a realtime mobile messaging service

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on rationalowl_flutter

Packages that implement rationalowl_flutter