UNPKG

unfc

Version:

A framework-agnostic NFC package for reading/writing NFC tags in web apps and PWAs

79 lines (78 loc) 2.89 kB
import { IsEnabledResult, NfcStatusChangedEvent, StartScanSessionOptions, TagDetectedEvent, WriteOptions, ShareOptions, PluginListenerHandle } from "./definitions.js"; /** * Main NFC class that provides access to NFC functionality. * It automatically chooses the appropriate implementation for the current platform. */ export declare class Nfc { private implementation; private listeners; private iosInfo; private androidInfo; constructor(); /** * Internal method to monitor NFC status changes */ private monitorNfcStatus; /** * Check if NFC is enabled (Android) or available (iOS/Web). * @returns Promise resolving to an object with an `enabled` boolean property */ isEnabled(): Promise<IsEnabledResult>; /** * Open NFC settings (Android) or app settings (iOS) or shows guidance (Web). * This helps users enable NFC if it's disabled. */ openSettings(): Promise<void>; /** * Start scanning for NFC tags. * @param options Configuration options for the scan session */ startScanSession(options?: StartScanSessionOptions): Promise<void>; /** * Stop the current NFC scan session. */ stopScanSession(): Promise<void>; /** * Write an NDEF message to an NFC tag. * @param options Object containing the NDEF message to write */ write(options: WriteOptions): Promise<void>; /** * Make an NFC tag read-only. * WARNING: This is a permanent operation that cannot be undone. */ makeReadOnly(): Promise<void>; /** * Format an NFC tag, erasing its contents and preparing it for writing. */ format(): Promise<void>; /** * Erase the contents of an NFC tag. */ erase(): Promise<void>; /** * Share NDEF data via NFC (Android only, not available on iOS or Web). * @param options Object containing the NDEF message to share */ share(options: ShareOptions): Promise<void>; /** * Stop sharing NDEF data via NFC (Android only). */ stopSharing(): Promise<void>; /** * Register an event listener. * @param eventName Name of the event to listen for * @param listenerFunc Callback function to invoke when the event occurs * @returns A handle that can be used to remove the listener */ addListener(eventName: "nfcStatusChanged", listenerFunc: (status: NfcStatusChangedEvent) => void): Promise<PluginListenerHandle>; addListener(eventName: "tagDetected", listenerFunc: (tag: TagDetectedEvent) => void): Promise<PluginListenerHandle>; /** * Remove all event listeners registered for this plugin. */ removeAllListeners(): Promise<void>; /** * Internal method to notify listeners of events */ private notifyListeners; }