nfc_info 0.0.1 copy "nfc_info: ^0.0.1" to clipboard
nfc_info: ^0.0.1 copied to clipboard

outdated

Help flutter app to grab background NFC message after the app is opened by NFC tag

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:nfc_info/nfc_info.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
  String _platformVersion = 'Unknown';
  String _nfc = "";

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    initPlatformState();
    getNfcInfo();
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    switch (state) {
      case AppLifecycleState.resumed:
        print("app in resumed");
        getNfcInfo();
        break;
      case AppLifecycleState.inactive:
        print("app in inactive");
        break;
      case AppLifecycleState.paused:
        print("app in paused");
        break;
      case AppLifecycleState.detached:
        print("app in detached");
        break;
    }
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String platformVersion;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      platformVersion = await NfcInfo.platformVersion;
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  Future<void> getNfcInfo() async {
    String nfc = "";
    try {
      nfc = await NfcInfo.getInitialText();
    } on PlatformException {
      print("error invoking getInitialText");
    }
    print('getNfcInfo: $nfc');
    if (nfc != null && nfc.isNotEmpty) {
      // if we got nfc, need to clear
      await NfcInfo.reset();
    }
    if (!mounted) return;

    setState(() {
      _nfc = nfc;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Column(
          children: [
            Text('Running on: $_platformVersion\n'),
            Text('Got nfc: $_nfc'),
            Spacer(),
          ],
        ),
        floatingActionButton: FloatingActionButton(
          child: Icon(Icons.nfc),
          onPressed: () {
            getNfcInfo();
          },
        ),
      ),
    );
  }
}
3
likes
0
pub points
50%
popularity

Publisher

verified publishericoffee.app

Help flutter app to grab background NFC message after the app is opened by NFC tag

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on nfc_info