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