Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
/* globals NfcUtils, BaseModule, Service */
|
|
'use strict';
|
|
(function() {
|
|
var NfcHandler = function (core) {
|
|
this.nfc = core.nfc;
|
|
};
|
|
|
|
/**
|
|
* @class NfcCore
|
|
*/
|
|
BaseModule.create(NfcHandler, {
|
|
name: 'NfcHandler',
|
|
|
|
_start: function nh_start() {
|
|
this.nfc.addEventListener('peerready', this);
|
|
},
|
|
|
|
handleEvent: function nh_handleEvent(evt) {
|
|
var nfcUtils = new NfcUtils();
|
|
if (evt.type !== 'peerready') {
|
|
return;
|
|
}
|
|
var currentApp = Service.query('getTopMostWindow');
|
|
if (currentApp && currentApp.isBrowser() && currentApp.config.url) {
|
|
var ndefUri = nfcUtils.parseURIString(currentApp.config.url);
|
|
this.sendNDEFMessageToNFCPeer(ndefUri, evt);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Send NDEF message to NFC peer.
|
|
* @param {MozNDEFRecord} message non-null Array of NDEF records.
|
|
* @param {Events} nfcEvent an event from mozNfc.onpeerready.
|
|
*/
|
|
sendNDEFMessageToNFCPeer:
|
|
function nh_sendNDEFMessageToNFCPeer(message, nfcEvent) {
|
|
if (!message) {
|
|
return;
|
|
}
|
|
var nfcPeer = nfcEvent.peer;
|
|
if (!nfcPeer) {
|
|
return null;
|
|
}
|
|
|
|
nfcPeer.sendNDEF(message);
|
|
}
|
|
});
|
|
}());
|