mirror of
https://github.com/LukeHagar/yotocol.git
synced 2025-12-06 04:22:12 +00:00
88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
Library for creating and parsing NDEF messages
|
|
# Installing
|
|
Bower
|
|
```
|
|
bower install ndef
|
|
```
|
|
NPM
|
|
```
|
|
npm install @taptrack/ndef
|
|
```
|
|
|
|
# Creating Records
|
|
## Text records
|
|
```javascript
|
|
var ndef = require('@taptrack/ndef');
|
|
// language code is optional, defaults to 'en'
|
|
var textRecord = ndef.Utils.createTextRecord("sirop","fr");
|
|
var message = new ndef.Message([textRecord]);
|
|
|
|
// Uint8Array for storing, writing to a tag, etc.
|
|
var bytes = message.toByteArray();
|
|
```
|
|
## Uri records
|
|
```javascript
|
|
// NDEF uri prefixes will be automatically applied
|
|
var textRecord = ndef.Utils.createUriRecord("http://www.google.com");
|
|
var message = new ndef.Message([textRecord]);
|
|
|
|
// Uint8Array for storing, writing to a tag, etc.
|
|
var bytes = message.toByteArray();
|
|
```
|
|
## Custom records
|
|
```javascript
|
|
// creating message to be carried inside smartposter record
|
|
var uri = ndef.Utils.createUriRecord("http://www.google.com");
|
|
var payloadMsg = new ndef.Message([uri]);
|
|
|
|
var chunked = false; // non-chunked record
|
|
var tnf = new Uint8Array([0x01]); // TNF well known
|
|
var type = new Uint8Array([0x53,0x70]);
|
|
var payload = payloadMessage.toByteArray();
|
|
|
|
var spRecord = new ndef.Record(chunked,tnf,type,id,payload);
|
|
var spMessage = new ndef.Message([record]);
|
|
|
|
// Uint8Array for storing, writing to a tag, etc.
|
|
var bytes = spMessage.toByteArray();
|
|
```
|
|
|
|
# Parsing messages
|
|
## Text records
|
|
```javascript
|
|
var message = ndef.Message.fromBytes(byteArray);
|
|
var records = message.getRecords();
|
|
|
|
var recordContents = ndef.Utils.resolveTextRecord(parsedRecords[0]);
|
|
console.log("Language: "+recordContents.language);
|
|
console.log("Content: "+recordContents.content);
|
|
```
|
|
|
|
## URI records
|
|
```javascript
|
|
var message = ndef.Message.fromBytes(byteArray);
|
|
var records = message.getRecords();
|
|
|
|
var uri = ndef.Utils.resolveUriRecordToString(parsedRecords[0]);
|
|
console.log("URI: "+uri);
|
|
```
|
|
|
|
## Other records
|
|
```javascript
|
|
// takes a Uint8Array containing a valid, complete message
|
|
var message = ndef.Message.fromBytes(byteArray);
|
|
|
|
// array of all the records
|
|
var records = message.getRecords();
|
|
|
|
for(var i = 0; i < records.length; i++) {
|
|
var record = records[i];
|
|
console.log("Chunked: "+(record.isChunked?"Yes":"No");
|
|
console.log("TNF: "+record.getTnf().toString());
|
|
console.log("Type: "+record.getTnf().toString());
|
|
console.log("ID: "+record.getId().toString());
|
|
console.log("Payload: "+record.getTnf().toString());
|
|
}
|
|
```
|
|
|