This is an archived page. It's not actively maintained.


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

Supported in Firefox OS 2.0 for certified-apps.
Available in privileged apps as of Firefox OS 2.2.

See also