985
985
The example checks if {{NDEFReader}} is available.
986
986
</ p >
987
987
< pre class ="example ">
988
- if (navigator.nfc && navigator.nfc .ndef) {
988
+ if (navigator.nfc? .ndef) {
989
989
/* ... Scan and write NDEF Tags */
990
990
}
991
991
</ pre >
@@ -1027,8 +1027,7 @@ <h4>
1027
1027
Writing a text string to an NFC tag is straightforward.
1028
1028
</ p >
1029
1029
< pre class ="example ">
1030
- const ndef = navigator.nfc.ndef;
1031
- ndef.write(
1030
+ navigator.nfc.ndef.write(
1032
1031
"Hello World"
1033
1032
).then(() => {
1034
1033
console.log("Message written.");
@@ -1044,9 +1043,8 @@ <h4>
1044
1043
we rely on async/await.
1045
1044
</ p >
1046
1045
< pre class ="example ">
1047
- const ndef = navigator.nfc.ndef;
1048
1046
try {
1049
- ndef.write({
1047
+ navigator.nfc. ndef.write({
1050
1048
records: [{ recordType: "url", data: "https://w3c.github.io/web-nfc/" }]
1051
1049
});
1052
1050
} catch {
@@ -1069,10 +1067,9 @@ <h4>
1069
1067
handler and one used specifically for a single write.
1070
1068
</ p >
1071
1069
< pre class ="example ">
1072
- const ndef = navigator.nfc.ndef;
1073
1070
let ignoreRead = false;
1074
1071
1075
- ndef.onreading(event => {
1072
+ navigator.nfc. ndef.onreading(event => {
1076
1073
if (ignoreRead) {
1077
1074
return; // write pending, ignore read.
1078
1075
}
@@ -1083,14 +1080,15 @@ <h4>
1083
1080
function write(data) {
1084
1081
ignoreRead = true;
1085
1082
return new Promise((resolve, reject) => {
1086
- ndef.addEventListener("reading", event => {
1083
+ navigator.nfc. ndef.addEventListener("reading", event => {
1087
1084
// Check if we want to write to this tag, or reject.
1088
- ndef.write(data).then(resolve, reject).finally(() => ignoreRead = false);
1085
+ navigator.nfc.ndef.write(data).then(resolve, reject)
1086
+ .finally(() => ignoreRead = false);
1089
1087
}, { once: true });
1090
1088
});
1091
1089
}
1092
1090
1093
- await ndef.scan();
1091
+ await navigator.nfc. ndef.scan();
1094
1092
try {
1095
1093
await write("Hello World");
1096
1094
console.log("We wrote to a tag!")
@@ -1119,7 +1117,8 @@ <h4>
1119
1117
}
1120
1118
1121
1119
ndef.addEventListener("reading", event => {
1122
- ndef.write(data, { signal: ctlr.signal }).then(resolve, reject);
1120
+ ndef.write(data, { signal: ctlr.signal })
1121
+ .then(resolve, reject);
1123
1122
}, { once: true });
1124
1123
});
1125
1124
}
@@ -1142,13 +1141,12 @@ <h4>
1142
1141
{{NDEFReader/onreadingerror}} is fired.
1143
1142
</ p >
1144
1143
< pre class ="example ">
1145
- const ndef = navigator.nfc.ndef;
1146
- ndef.scan().then(() => {
1144
+ navigator.nfc.ndef.scan().then(() => {
1147
1145
console.log("Scan started successfully.");
1148
- ndef.onreadingerror = event => {
1146
+ navigator.nfc. ndef.onreadingerror = event => {
1149
1147
console.log("Error! Cannot read data from the NFC tag. Try a different one?");
1150
1148
};
1151
- ndef.onreading = event => {
1149
+ navigator.nfc. ndef.onreading = event => {
1152
1150
console.log("NDEF message read.");
1153
1151
};
1154
1152
}).catch(error => {
@@ -1168,17 +1166,16 @@ <h4>
1168
1166
amount of milliseconds.
1169
1167
</ p >
1170
1168
< pre class ="example ">
1171
- const ndef = navigator.nfc.ndef;
1172
-
1173
1169
function read() {
1174
1170
return new Promise((resolve, reject) => {
1175
1171
const ctlr = new AbortController();
1176
1172
ctlr.signal.onabort = reject;
1177
- ndef.addEventListener("reading", event => {
1173
+ navigator.nfc. ndef.addEventListener("reading", event => {
1178
1174
ctlr.abort();
1179
1175
resolve(event);
1180
1176
}, { once: true });
1181
- ndef.scan({ signal: ctlr.signal }).catch(err => reject(err));
1177
+ navigator.nfc.ndef.scan({ signal: ctlr.signal })
1178
+ .catch(err => reject(err));
1182
1179
});
1183
1180
}
1184
1181
@@ -1195,14 +1192,13 @@ <h4>
1195
1192
a text message is written with the value "Hello World".
1196
1193
</ p >
1197
1194
< pre class ="example ">
1198
- const ndef = navigator.nfc.ndef;
1199
- await ndef.scan();
1200
- ndef.onreading = event => {
1195
+ await navigator.nfc.ndef.scan();
1196
+ navigator.nfc.ndef.onreading = event => {
1201
1197
const message = event.message;
1202
1198
1203
1199
if (message.records.length == 0 || // unformatted tag
1204
1200
message.records[0].recordType == 'empty' ) { // empty record
1205
- ndef.write({
1201
+ navigator.nfc. ndef.write({
1206
1202
records: [{ recordType: "text", data: 'Hello World' }]
1207
1203
});
1208
1204
return;
@@ -1251,9 +1247,8 @@ <h4>
1251
1247
a write with a custom NDEF data layout.
1252
1248
</ p >
1253
1249
< pre class ="example ">
1254
- const ndef = navigator.nfc.ndef;
1255
- await ndef.scan();
1256
- ndef.onreading = async event => {
1250
+ await navigator.nfc.ndef.scan();
1251
+ navigator.nfc.ndef.onreading = async event => {
1257
1252
if (event.message.id !== "my-game-progress")
1258
1253
return;
1259
1254
console.log(`Game state: ${ JSON.stringify(event.message.records) }`);
@@ -1271,7 +1266,7 @@ <h4>
1271
1266
}))
1272
1267
}]
1273
1268
};
1274
- await ndef.write(newMessage);
1269
+ await navigator.nfc. ndef.write(newMessage);
1275
1270
console.log("Message written");
1276
1271
};
1277
1272
</ pre >
@@ -1282,9 +1277,8 @@ <h4>
1282
1277
Storing and receiving JSON data is easy with serialization and deserialization.
1283
1278
</ p >
1284
1279
< pre class ="example ">
1285
- const ndef = navigator.nfc.ndef;
1286
- await ndef.scan();
1287
- ndef.onreading = event => {
1280
+ await navigator.nfc.ndef.scan();
1281
+ navigator.nfc.ndef.onreading = event => {
1288
1282
const decoder = new TextDecoder();
1289
1283
for (const record of event.message.records) {
1290
1284
if (record.mediaType === 'application/json') {
@@ -1296,7 +1290,7 @@ <h4>
1296
1290
};
1297
1291
1298
1292
const encoder = new TextEncoder();
1299
- ndef.write({
1293
+ navigator.nfc. ndef.write({
1300
1294
records: [
1301
1295
{
1302
1296
recordType: "mime",
@@ -1323,9 +1317,7 @@ <h4>
1323
1317
Writing data requires tapping an < a > NFC tag</ a > .
1324
1318
</ p >
1325
1319
< pre class ="example ">
1326
- const ndef = navigator.nfc.ndef;
1327
-
1328
- ndef.onreading = async event => {
1320
+ navigator.nfc.ndef.onreading = async event => {
1329
1321
const decoder = new TextDecoder();
1330
1322
for (const record of event.message.records) {
1331
1323
console.log("Record type: " + record.recordType);
@@ -1334,13 +1326,13 @@ <h4>
1334
1326
}
1335
1327
1336
1328
try {
1337
- await ndef.write("Overriding data is fun!");
1329
+ await navigator.nfc. ndef.write("Overriding data is fun!");
1338
1330
} catch(error) {
1339
1331
console.log(`Write failed :-( try again: ${error}.`);
1340
1332
}
1341
1333
};
1342
1334
1343
- ndef.scan();
1335
+ navigator.nfc. ndef.scan();
1344
1336
</ pre >
1345
1337
</ section >
1346
1338
@@ -1349,11 +1341,10 @@ <h4>
1349
1341
Read NDEF messages for 3 seconds by using {{NDEFScanOptions/signal}}.
1350
1342
</ p >
1351
1343
< pre class ="example ">
1352
- const ndef = navigator.nfc.ndef;
1353
1344
const controller = new AbortController();
1354
1345
1355
- await ndef.scan({ signal: controller.signal });
1356
- ndef.onreading = event => {
1346
+ await navigator.nfc. ndef.scan({ signal: controller.signal });
1347
+ navigator.nfc. ndef.onreading = event => {
1357
1348
console.log("NDEF message read.");
1358
1349
};
1359
1350
@@ -1368,9 +1359,8 @@ <h4>
1368
1359
1369
1360
< section > < h3 > Write a smart poster message</ h3 >
1370
1361
< pre class ="example ">
1371
- const ndef = navigator.nfc.ndef;
1372
1362
const encoder = new TextEncoder();
1373
- ndef.write({ records: [
1363
+ navigator.nfc. ndef.write({ records: [
1374
1364
{
1375
1365
recordType: "smart-poster", // Sp
1376
1366
data: { records: [
@@ -1434,9 +1424,8 @@ <h4>
1434
1424
borrowed from < a > smart poster</ a > , but used in local application context.
1435
1425
</ p >
1436
1426
< pre class ="example ">
1437
- const ndef = navigator.nfc.ndef;
1438
- await ndef.scan();
1439
- ndef.onreading = event => {
1427
+ await navigator.nfc.ndef.scan();
1428
+ navigator.nfc.ndef.onreading = event => {
1440
1429
const externalRecord = event.message.records.find(
1441
1430
record => record.type == "example.com:smart-poster"
1442
1431
);
@@ -1473,8 +1462,7 @@ <h4>
1473
1462
that may even contain an < a > NDEF message</ a > as payload.
1474
1463
</ p >
1475
1464
< pre class ="example ">
1476
- const ndef = navigator.nfc.ndef;
1477
- ndef.write({ records: [
1465
+ navigator.nfc.ndef.write({ records: [
1478
1466
{
1479
1467
recordType: "example.game:a",
1480
1468
data: {
@@ -1507,8 +1495,7 @@ <h4>
1507
1495
</ p >
1508
1496
< pre class ="example ">
1509
1497
const encoder = new TextEncoder();
1510
- const ndef = navigator.nfc.ndef;
1511
- ndef.write({ records: [
1498
+ navigator.nfc.ndef.write({ records: [
1512
1499
{
1513
1500
recordType: "example.com:shoppingItem", // External record
1514
1501
data: {
@@ -1527,9 +1514,8 @@ <h4>
1527
1514
]});
1528
1515
</ pre >
1529
1516
< pre class ="example ">
1530
- const ndef = navigator.nfc.ndef;
1531
- await ndef.scan();
1532
- ndef.onreading = event => {
1517
+ await navigator.nfc.ndef.scan();
1518
+ navigator.nfc.ndef.onreading = event => {
1533
1519
const shoppingItemRecord = event.message.records[0];
1534
1520
if (!shoppingItemRecord ||
1535
1521
shoppingItemRecord.recordType !== "example.com:shoppingItem") {
@@ -1997,7 +1983,7 @@ <h2>The NFC object</h2>
1997
1983
</ pre >
1998
1984
< p > The
1999
1985
< dfn > ndef</ dfn > property is an {{NDEFReader}} object that provides
2000
- < a > NDEF </ a > tag read and write functionality.
1986
+ < a > NFC tag </ a > read and write functionality.
2001
1987
</ p >
2002
1988
2003
1989
< section > < h3 > NFC state associated with the settings object</ h3 >
@@ -2031,7 +2017,7 @@ <h2>The NFC object</h2>
2031
2017
< td > empty < a > set</ a > </ td >
2032
2018
< td >
2033
2019
A <|promise:Promise|, |reader:NDEFReader|> tuple where |promise|
2034
- holds a {{Promise}} and |reader| holds an {{NDEFReader}}.
2020
+ holds a pending {{Promise}} and |reader| holds an {{NDEFReader}}.
2035
2021
</ td >
2036
2022
</ tr >
2037
2023
< tr >
0 commit comments