The sendNDEF() method of the MozNFCPeer interface is used to send NFC Data Exchange Formatted (NDEF) messages to another NFC enabled device.


sendNDEF(sequence<MozNDEFRecord> records)


function fromUTF8(str) {
  if (!str) {
    return null;
  var buf = new Uint8Array(str.length);
  for (var i = 0; i < str.length; i++) {
    buf[i] = str.charCodeAt(i);
  return buf;

var tnf     = 1;                                             // NFC Forum Well Known type
var type    = new Uint8Array(fromUTF8("U"));                 // URL type
var id      = new Uint8Array(fromUTF8(""));                  // id
var payload = new Uint8Array(fromUTF8("\")); // URL data, with a short record prefix 0x3 replacing http://

var ndefRecords = [new MozNDEFRecord(tnf, type, id, payload)];
var nfcdom = window.navigator.mozNfc;
 nfcdom.onpeerready = function(event) {
  var nfcPeer = nfcdom.getNFCPeer(event.detail);  // 'event.detail' has sessionToken.
  var req = nfcpeer.sendNDEF(ndefRecords); // push NDEF message to other NFC device.
  req.onsuccess = function(e) {
    console.log("Successfully pushed P2P message");
  req.onerror = function(e) {
    console.log("P2P push failed! Error: " +;


A sequence of <MozNDEFRecord> records to send.


A DOMRequest object.


See onerror()


The NFC implementation in Gecko follows the NFC Forum specifications.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support

No support

No support No support No support No support
Feature Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support No support No support 2.0 moz [1] No support No support No support

[1] Available in privileged apps as of Firefox OS 2.2; certified-only before that.

See also

Document Tags and Contributors

 Contributors to this page: chrisdavidmills, fscholz, lgarner
 Last updated by: chrisdavidmills,