Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cordova-plugin-nfc-android

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cordova-plugin-nfc-android

Cordova NFC Plugin for Android

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
0
Weekly downloads
 
Created
Source

cordova-plugin-nfc-android

A plugin to handle read/write NDEF messages from NFC on Android.

Installation:

For stable relases type:

cordova plugin add cordova-plugin-nfc-android

For latest releases type:

cordova plugin add https://github.com/bkamenov/cordova-plugin-nfc-android

API & Usage:

// NFC status checking.
cordova.plugins.NFC.status(
  (status) => {
    console.log('NFC status:', status); //"NFC_OK", "NFC_DISABLED" or "NO_NFC" (device does not have NFC hardware)

    if(status === "NFC_DISABLED") {
      // Open NFC settings
      cordova.plugins.NFC.showSettings();
    }
  });

// Permissions asking (normally permission is automatically granted but just in case check)
cordova.plugins.NFC.askForPermission(
  (granted) => {
    console.log('NFC permission granted:', granted); //1 - granted, 0 - not granted
  });

// Set MIME type filter - set a list of MIME types for the NDEF messages you want to read.
// If not set, all NDEF messages will be read.
cordova.plugins.NFC.setMimeTypeFilter(["text/plain"],
  () => {
    console.log('MIME type filter set');
  },
  (error: string) => {
    console.error('Failed to set MIME type filter:', error);
  });

// Helper function
function arrayBufferToString(buffer) {
  const decoder = new TextDecoder('utf-8');
  const view = new Uint8Array(buffer);
  return decoder.decode(view);
}

// Listen for NDEF tags
document.addEventListener('ndef',
  (event) => {
    const ndef = event.detail;
    console.log("NDEF tag detected: " + ndef.tagSerial);
    if (ndef.mimeType) // MIME type is optional field and may not be set on all NDEF tags
      console.log("NDEF tag MIME: " + ndef.mimeType);
    console.log("NDEF data as text: " + arrayBufferToString(ndef.ndefData));

    // Write NDEF message when a tag is detected (This step is optional,
    // because you are not obligated to write to tags.)
    const message = {
      mimeType: "text/plain", // mimeType is optional
      ndefData: new TextEncoder().encode("My message").buffer
    };
    // The write command should be run in the context of read. 
    // Otherwise, the behavior is unknown.
    cordova.plugins.NFC.write(message,
      () => {
        console.log('NDEF message written successfully');
      },
      (error) => {
        console.log('Failed to write NDEF message:', error);
      });
  });

// Monitor for NFC state changes
document.addEventListener('nfcstatechange',
  (event) => {
    console.log("NFC state changed to: " + event.detail); // "NFC_OK" or "NFC_DISABLED"
  });

It is recomended to use cordova-plugin-nfc-launcher-android if you want your app to launch automatically when a NDEF message with specific MIME type is detected.

If you like my work and want more nice plugins, you can get me a beer or stake.

Keywords

FAQs

Package last updated on 02 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc