-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
732 lines (732 loc) · 92.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
<!DOCTYPE html>
<html>
<head>
<title>AugPoint</title>
<meta name="viewport" content="width=device-width, user-scalable=no">
<style>
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.card {
width: 80%;
border-radius: 3%;
border: solid;
border-color: #888888;
border-width: 1px;
box-shadow: 0px 0px 50px #888888;
overflow: hidden;
position: relative;
transition: 0.1s;
-webkit-transition: 0.1s;
}
.card:hover {
width: 80%;
border-radius: 3%;
border: solid;
border-color: #888888;
border-width: 1px;
box-shadow: 0px 0px 50px #888888;
overflow: hidden;
position: relative;
opacity: 0.5;
}
#myBar {
width: 1%;
height: relative;
background-color: #4CAF50;+
background:green;
height: 100%;
width: 0%;
position: absolute;
left: 0;
top: 0;
opacity: 0.2;
transition: 0s;
-webkit-transition: 0s;
}
#cardContainer {
text-align: center;
}
#cardID {
text-align: center;
font-size: 20px;
font-family: sans-serif;
}
</style>
</head>
<body>
<div id="cardContainer">
<div id="cardID">
<span>Card ID: </span><span id="cardID">000000000000000</span>
</div>
<img class="card" src="data:image/png;base64,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rjzzzDPpn4IQQio/FICEkIrLvffeK+usvbYrrrTIamyIy5pD2+Xcy1eVya/2cVf8Bk8Ta9vPDquV1ma7UCskvYpZT13//Oc/l48//jj9qgkhpPeEApAQUtG5/PLLZdiwYdLU1OQKr/a21BIyG27cIseeOkDumracW0rmomtWlpoBxZv7pxesqF133VVmzJiRfnWEENI7QwFICOk1mTlzpvz617+Wtdday80Z1DuLaHGmt5jT4jBYtOVLn0tPReufW2+9jfz9739PvwJCCKmOUAASQnp1Xp0xQy655BLZfffdZZNNNpE111zTjRbq3Te0SNRCTk/XaptH2+obUtu14NOLN7baais56qij5MEHH+R+vYSQqg8FICGEEEJIxEIBSAghhBASsVAAEkIIIYRELBSAhJCCZZ111nELIuufOq/Os9Zaa8nJJ5+S7iWyww47LJ2Pd/fdd6dbl8V7ni+++MJ9vdNOO7m+39hwQ9l0001l4403dkvE9O/fX4497jjRm258+9vflhEjRsh6660n8XjcXcChX+v3Hzx4sMyc+YZcdNFF7nFrr722bLbZZu65hgwZIrU1NbLtttvKggUL3PfzonMB44m4m0Oo9xeeNWtWeksqp5xyitTV1cnw4cPd99Xvp69z4MCBMiL5M/hvBXfwwQe7q4j1e/vfG6WPJYSQUoYCkBBSsGgBpIVXsFDy5+qrr3YF1cMPP+zW0dOi6JNPP01vTUULQC3avAJw5513dhd1vPLqq+5rL3/84x9d+1/+8pd0i8jixYtl++23l6HDhsmbb76Zbk3l/PPPd/3/8Y9/pFtSGT9+ggwaNEh+tu++6ZZU9tlnH1dMvvXWW+5n+973vpfeksqpp54qq6yyitx1V9ci9ic/+YkrDi+//Ar39SGHHOKKw+nTp7uvCSGknKEAJIQULFok6VW1G264oWy00UZLfec735ElyWJuzpw5rqDaeuutXf/33nvPFXp671x/rAJQr9j95x13yLRp02Ts2LFyzjnnuKt5td8bb7zh+mm6KwD1MWeddZZ7nnHjxsl1113nRihra2tlzJgx6Z6pxai179lnn+2+vvXWW10Bd9lll7mvNdkKwP8+9ZQrdDfYYAP39aGHHupGNVcfsLqstPJKS62w4gry/R2+7/oQQkipQgFICClYvBHAzz77LN3SOd///vfdSJsu7qwF1n333Sc//elPXaF1++23p3vZBaD2ueGGG9wyLfvuu68rCPV5gglTAJ522mluBPLkk092hd/ee++d7pHKZ599LolkoZoYnJA777xT7rnnnuTrvU/W32B9N2L57rvvun7ZCsD777/ffS9dOFqjBaB+/eyzz7qvCSGknKEAJIQULNlOAV9zzTVuBO2www5zRdwDDzzgaKE0YuQINzfPu61amFPAOqdO59qNGjUq3ZJKrqeA77r7bmlMFpM6B3DRokWuTU/far8rrrhi6WvVP2+66SbXvvl3Nnf9tABcbbXV5Kqr/irPP/+8PP744zJ69Gg5NPkzarGnC1Z/kH4vvFPA//znP11fvxdeeMH1IYSQUoUCkBBSsOjI2u9+97su98fVwuqkk06WU0451bx3ro6KHXXU0fLXv/7VfX366afLCSeMkq+++sp9rXP8jjvuuC6FpZ6WPeaYY+Vfd96ZbhFXNP7pT39y32/u3Hnp1lQeeughOfbYY12h5s+kSZOSz3+8XHDBhe50sv4MV1x++dLv789tt93u+j7xxBOueNW/n3DCCc6oUSfKhRde6EYNP/nkk/QjUrn++uvd83p9/U466aR0L0IIKU0oAAkhhBBCIhYKQEIIIYSQiIUCkBBCCCEkYqEAJIQQQgiJWCgACSGEEEIiFgpAQgghhJCIhQKQEEIIISRioQAkhBBCCIlYKAAJIYQQQiIWCkBCCCGEkIiFApAQQgghJGKhACSEEEIIiVhilz69mwAAACA6KAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYC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GDFC7r333vSrJoSQ3hUKQEJIRebqq692p4N1UWVdK7ChXu8h3CH7HlIjd05dXv7zXmren64b+GiyKPztWf2ltiYhHcm+VtFWKLqA9c677CKvv/56+pUSQkjvCwUgIaRiM2PGDNl1111dEah0vcDmxqSmuBsRvOLWlWXs832ThWAf2fibup5gce4CoiORelp62LBhcvnll6dfHSGE9N5QABJCKj56qnWzzTZz6+x1dKSKPD0tnJoj2CI77t7klpAJFm6FoKOQesr32GOPlddnzky/IkII6d2hACSE9JrcfPPNsvVWW7sROb361psj2NpqF2/50qJPl3ZZe+215cgjj5Q33ngj/QoIIaQ6QgFICOlVWbx4sUyZMkWOOuooGTp0qNTW1qZODxuFXC6807w6x2/77beXK6640l2VTAgh1RgKQEJIr82SJUvkwQcfdMXgVltt5e4oosWcjt7VN9S7UUIt6vy0zW2vr3dfr7nmmrLJJpvI7rvvLpdccom8+uqr6WcnhJDqDQUgIaQq8sUXX7hTtdOnT5c77rhDLvrTn+Skk06Sww47TA488EA55JBD5KCDDnJz+X7/+zPlmmuvlXHjxskLL7wgc+fOTT8LIYREIxSAhBBCCCERCwUgIYQQQkjEQgFICCGEEBKxUAASQgghhEQsFICEEEIIIRELBSAhpGDZe++95cc//rHsueeenejt3OZ8+KHrs3DhQndlrrb9/cabXJs/9913n+y2227yz3/+0339+OOPu+f0P+8+++wjZ555prz77ruuz+jRo2XnnXd227y+Xv899thDzjrrLNdvv/32W/ocXt/jjz9ennzySbc9mOeff949fpdddpGnnno63ZrKrFmz5IADDuj0uvbaay857rjjZNKkSeleqcyZM8c9j/97++lVyoQQUspQABJCCpYhQ4bI4MGDZb311nNr8nn0Hrpvv/226zNt2qPS1tbmbq+20cYbyddff+3avVxzzTVunb4LL7zQff3QQw+5/rros94ObtNNN5URI0a4BZuHrDFEXnn11WSxeMfS7zt8+HDXf4011pD1119f1llnHfnFL37hnkvX/Gtrb3Pr/unzbLjhhu55dDHpm27qWoz+/szfL70V3BG/PCLdmspbb73lfrZ4PO6+77rrruu+Z01NjdQm/eY3v5GvvvrK9X3nnXfcz5RIJLq8N/qzfOMb33D9CCGkVKEAJIQULFrg7L///m507IMPPujkyy+/dH3OOOP3Up8sug4++GBXWP373/927V60ANQFmv/0pz+5r7UA1K+PPvpomTdvnluzT5/vd7/7nVvMeZ9995VFixbJ+++/777v3/72Nxk4cKCcfPIpMnv2bNd3/vz5bp1ALSK1INTnUDoyp2sG6uvQ275pfy+ff/65fO9733PF2Xbbbycbb7KxzEs+jxevANx6663d3/X7aJH7r3/9yxWCWgTqwtIarwDUvtZ782F6dJQQQkoVCkBCSMGiBaCe3s0UHezzRrxefPFFN2p3xhlnpLemYhWAWqDpAs7+aIGmo3Na1Plz6623yoABA+TM9GlfL3rXEO2r398bmfOip3H1DiKPPfZYukXktddek6bGRvd9r776amlJvga9BZ0XrwDcdtvt5NNPP0u3pjJ16lR3x5E11lhTPvnkE3nvvXddAbjtttumexBCSHlDAUgIKVi6KwAff3y6rLbaanLKKae4ImzjjTd2t3D79NNP0z0yF4A6t86fN998y7XrKVV/whSA/nzx5ZdupC+eLAD9o5EXXXSRrLzyyjJhwgT53//+507t/va3v01vzV4AavQ5tUAdM2aMG+XTAnCbbbaR+fMXuJFGzwcfzHajk4QQUspQABJCCpY1hgxxc/B0jt1GG23k6KnVf95xh9t+5JFHSk1tjbtdm+aXv/ylO1Wqo4FerAJQR99+/vOfy7Rp02TixIlyzz33uMJx0KBB8vvf/97189JdATh8reFuhE7pfYQP+8UvpP/q/V1xpn00Oi9R5ycm4nFZvHixa9M5fmsOXXPpqezuCkCdd6ijgNdff7071aw/kxaEK660oqy08kpLxWIxGZ0sEgkhpJShACSEFCx6Ecja66ztrprdaaednG2ThdX9DzwgH3/8sXzzm990F1/onDzN+PHj3Sjb2Wef7b7WWAWgnp7Viy1Ue1ubK6T07yeeeOLSAs1LtgJQL0Zpb29f+lz6PFpc6ilgnZvnRQvUxqZGOezQQ9MtImckC00dvdT7B2u6KwAPP/yI5M/R6C4u0QJQi0EdrTz//PPdz+s57bTTZMaM19KPIoSQ0oQCkBBSsOgp4F/96lfprzpH59e1tra6kba7777bjeJpsaZFmI6ueadBzRHAZJ+999nHjdjdeOONrpjSx1jJWgAOHeZGKPV57r//fleManH5xBNPpHulokvM6Pc4+pij3etU5557rtQ11Mkhhx7i+nRXAOqyNPq6H374YVdc6ing7bffPr2VEELKGwpAQkjBkm0OoM770yJIR+B0mRYtBvXP9o7U197aeZnmAB7/m9+4rzW/SH4PPf2rzxlMLnMAb7jh7+577b777ksvDNErir///e9LW/L16WvT16n0devXempYr9r1F4Cff77IPdbLc889535WvchFRzt1vUIuAiGEVFIoAAkhBUumAlCLKx2x06LqrrvuciNwDzzwgPvz9DNOdwWeV8xlKgD9VwHPnDnTFVf+9QW9hCkAvWLvs88+c6elByb76/fR6NW/Ovqn7d7r9Oionm4bP2GCW9pFC8Dvfve7biFppfMKdRkaXWpGX8MFF1zgntNbBmaLLbZw8x11gWmPFosvv/yy60cIIaUKBSAhpGDRkTxd3y8Yneu3ev/+8j3jFOgrr7zi5g7qFcFakOmSK7o48x//+Ee3XYswXe/vqKOOcl970YJQRwGPOvroTotJ33zzzbLqKqskC8vOy8toATg4WaDqKWD/MjBa2Olr22DDDdwFHnr6V+clnnPOOekey/L3v9/oCjstcnXdQb3ARUcHtfB18xPb213xqn/quoXeBSNapOrPpH21cNX+SyUfN2xY56VsCCGk2KEAJIQULKNGnZgskv6e/mpZ7rzzLjn6mGNkzNix6ZZl0SJJiy0t6PTU6qOPPupuz6a3d9PoKJneVeO2225zX3v54IP3k+2/lWOSj9M1Ab3oUi6//vWv5f77H0i3pKLf5+STT3YXXfgLQM25557nlnh56aWX5OKLL5ajko/XkcBgPvroQ7cczWmnne5uaadrGJ5wwgmOLkyti1xfeeWV8p///Cf9iFR00Wn9mby+fr/73Qly+umdi1VCCCl2KAAJIYQQQiIWCkBCCCGEkIiFApAQQgghJGKhACSEEEIIiVgoAAkhhBBCIhYKQEIIIYSQiIUCkBBCCCEkYqEAJIQQQgiJWCgACSGEEEIiFgpAQgghhJCIhQKQEEIIISRioQAkhBBCCIlYKAAJIYQQQiIWCkBCCCGEkIiFApAQQgghJGKhACSEEEIIiVgoAAkhhBBCIhYKQEIIIYSQiIUCkBBCCCEkYqEAJIQQQgiJWCgACSGEEEIiFgpAQgghhJCIhQKQEEIIISRioQAkhBBCCIlYYpc+vZsAAAAgOigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAihgIQAAAgYigAAQAAIoYCEAAAIGIoAAEAACKGAhAAACBiKAABAAAiJha7e74AAAAAAAAAqFJmIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYCAAAAAAAAqA5mIwAAAAAAAIDqYDYC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GQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQIUZAAIAAABAhRkAAgAAAECFGQACAAAAQGVtH/8ftb9+orIkYzgAAAAASUVORK5CYII="><div id="myBar"></div>
<script>
const cardTrig = document.getElementById("cardContainer");
cardTrig.addEventListener("click", e => {
move();
onNFC();
});
</script>
</div><br>
<script>
function move() {
var elem = document.getElementById("myBar");
elem.style.opacity = "0.4";
elem.style.transition = "0s";
elem.style.webkitTransition = "0s";
var width = 1;
var id = setInterval(frame, 10);
function frame() {
if (width >= 100) {
clearInterval(id);
elem.style.transition = "0.5s";
elem.style.webkitTransition = "0.5s";
elem.style.opacity = "0";
width = 0;
elem.style.transition = "0s";
elem.style.webkitTransition = "0s";
elem.style.width = width + '%';
} else {
width++;
elem.style.width = width + '%';
}
}
}
</script>
<script>
/*jshint bitwise: false, camelcase: false, quotmark: false, unused: vars */
/*global cordova, console */
"use strict";
function handleNfcFromIntentFilter() {
// This was historically done in cordova.addConstructor but broke with PhoneGap-2.2.0.
// We need to handle NFC from an Intent that launched the application, but *after*
// the code in the application's deviceready has run. After upgrading to 2.2.0,
// addConstructor was finishing *before* deviceReady was complete and the
// ndef listeners had not been registered.
// It seems like there should be a better solution.
if (cordova.platformId === "android" || cordova.platformId === "windows") {
setTimeout(
function () {
cordova.exec(
function () {
console.log("Initialized the NfcPlugin");
},
function (reason) {
console.log("Failed to initialize the NfcPlugin " + reason);
},
"NfcPlugin", "init", []
);
}, 10
);
}
}
document.addEventListener('deviceready', handleNfcFromIntentFilter, false);
var ndef = {
// see android.nfc.NdefRecord for documentation about constants
// http://developer.android.com/reference/android/nfc/NdefRecord.html
TNF_EMPTY: 0x0,
TNF_WELL_KNOWN: 0x01,
TNF_MIME_MEDIA: 0x02,
TNF_ABSOLUTE_URI: 0x03,
TNF_EXTERNAL_TYPE: 0x04,
TNF_UNKNOWN: 0x05,
TNF_UNCHANGED: 0x06,
TNF_RESERVED: 0x07,
RTD_TEXT: [0x54], // "T"
RTD_URI: [0x55], // "U"
RTD_SMART_POSTER: [0x53, 0x70], // "Sp"
RTD_ALTERNATIVE_CARRIER: [0x61, 0x63], // "ac"
RTD_HANDOVER_CARRIER: [0x48, 0x63], // "Hc"
RTD_HANDOVER_REQUEST: [0x48, 0x72], // "Hr"
RTD_HANDOVER_SELECT: [0x48, 0x73], // "Hs"
/**
* Creates a JSON representation of a NDEF Record.
*
* @tnf 3-bit TNF (Type Name Format) - use one of the TNF_* constants
* @type byte array, containing zero to 255 bytes, must not be null
* @id byte array, containing zero to 255 bytes, must not be null
* @payload byte array, containing zero to (2 ** 32 - 1) bytes, must not be null
*
* @returns JSON representation of a NDEF record
*
* @see Ndef.textRecord, Ndef.uriRecord and Ndef.mimeMediaRecord for examples
*/
record: function (tnf, type, id, payload) {
// handle null values
if (!tnf) { tnf = ndef.TNF_EMPTY; }
if (!type) { type = []; }
if (!id) { id = []; }
if (!payload) { payload = []; }
// convert strings to arrays
if (!(type instanceof Array)) {
type = nfc.stringToBytes(type);
}
if (!(id instanceof Array)) {
id = nfc.stringToBytes(id);
}
if (!(payload instanceof Array)) {
payload = nfc.stringToBytes(payload);
}
return {
tnf: tnf,
type: type,
id: id,
payload: payload
};
},
/**
* Helper that creates an NDEF record containing plain text.
*
* @text String of text to encode
* @languageCode ISO/IANA language code. Examples: “fi”, “en-US”, “fr- CA”, “jp”. (optional)
* @id byte[] (optional)
*/
textRecord: function (text, languageCode, id) {
var payload = textHelper.encodePayload(text, languageCode);
if (!id) { id = []; }
return ndef.record(ndef.TNF_WELL_KNOWN, ndef.RTD_TEXT, id, payload);
},
/**
* Helper that creates a NDEF record containing a URI.
*
* @uri String
* @id byte[] (optional)
*/
uriRecord: function (uri, id) {
var payload = uriHelper.encodePayload(uri);
if (!id) { id = []; }
return ndef.record(ndef.TNF_WELL_KNOWN, ndef.RTD_URI, id, payload);
},
/**
* Helper that creates a NDEF record containing an absolute URI.
*
* An Absolute URI record means the URI describes the payload of the record.
*
* For example a SOAP message could use "http://schemas.xmlsoap.org/soap/envelope/"
* as the type and XML content for the payload.
*
* Absolute URI can also be used to write LaunchApp records for Windows.
*
* See 2.4.2 Payload Type of the NDEF Specification
* http://www.nfc-forum.org/specs/spec_list#ndefts
*
* Note that by default, Android will open the URI defined in the type
* field of an Absolute URI record (TNF=3) and ignore the payload.
* BlackBerry and Windows do not open the browser for TNF=3.
*
* To write a URI as the payload use ndef.uriRecord(uri)
*
* @uri String
* @payload byte[] or String
* @id byte[] (optional)
*/
absoluteUriRecord: function (uri, payload, id) {
if (!id) { id = []; }
if (!payload) { payload = []; }
return ndef.record(ndef.TNF_ABSOLUTE_URI, uri, id, payload);
},
/**
* Helper that creates a NDEF record containing an mimeMediaRecord.
*
* @mimeType String
* @payload byte[]
* @id byte[] (optional)
*/
mimeMediaRecord: function (mimeType, payload, id) {
if (!id) { id = []; }
return ndef.record(ndef.TNF_MIME_MEDIA, nfc.stringToBytes(mimeType), id, payload);
},
/**
* Helper that creates an NDEF record containing an Smart Poster.
*
* @ndefRecords array of NDEF Records
* @id byte[] (optional)
*/
smartPoster: function (ndefRecords, id) {
var payload = [];
if (!id) { id = []; }
if (ndefRecords)
{
// make sure we have an array of something like NDEF records before encoding
if (ndefRecords[0] instanceof Object && ndefRecords[0].hasOwnProperty('tnf')) {
payload = ndef.encodeMessage(ndefRecords);
} else {
// assume the caller has already encoded the NDEF records into a byte array
payload = ndefRecords;
}
} else {
console.log("WARNING: Expecting an array of NDEF records");
}
return ndef.record(ndef.TNF_WELL_KNOWN, ndef.RTD_SMART_POSTER, id, payload);
},
/**
* Helper that creates an empty NDEF record.
*
*/
emptyRecord: function() {
return ndef.record(ndef.TNF_EMPTY, [], [], []);
},
/**
* Helper that creates an Android Application Record (AAR).
* http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#aar
*
*/
androidApplicationRecord: function(packageName) {
return ndef.record(ndef.TNF_EXTERNAL_TYPE, "android.com:pkg", [], packageName);
},
/**
* Encodes an NDEF Message into bytes that can be written to a NFC tag.
*
* @ndefRecords an Array of NDEF Records
*
* @returns byte array
*
* @see NFC Data Exchange Format (NDEF) http://www.nfc-forum.org/specs/spec_list/
*/
encodeMessage: function (ndefRecords) {
var encoded = [],
tnf_byte,
type_length,
payload_length,
id_length,
i,
mb, me, // messageBegin, messageEnd
cf = false, // chunkFlag TODO implement
sr, // boolean shortRecord
il; // boolean idLengthFieldIsPresent
for(i = 0; i < ndefRecords.length; i++) {
mb = (i === 0);
me = (i === (ndefRecords.length - 1));
sr = (ndefRecords[i].payload.length < 0xFF);
il = (ndefRecords[i].id.length > 0);
tnf_byte = ndef.encodeTnf(mb, me, cf, sr, il, ndefRecords[i].tnf);
encoded.push(tnf_byte);
type_length = ndefRecords[i].type.length;
encoded.push(type_length);
if (sr) {
payload_length = ndefRecords[i].payload.length;
encoded.push(payload_length);
} else {
payload_length = ndefRecords[i].payload.length;
// 4 bytes
encoded.push((payload_length >> 24));
encoded.push((payload_length >> 16));
encoded.push((payload_length >> 8));
encoded.push((payload_length & 0xFF));
}
if (il) {
id_length = ndefRecords[i].id.length;
encoded.push(id_length);
}
encoded = encoded.concat(ndefRecords[i].type);
if (il) {
encoded = encoded.concat(ndefRecords[i].id);
}
encoded = encoded.concat(ndefRecords[i].payload);
}
return encoded;
},
/**
* Decodes an array bytes into an NDEF Message
*
* @bytes an array bytes read from a NFC tag
*
* @returns array of NDEF Records
*
* @see NFC Data Exchange Format (NDEF) http://www.nfc-forum.org/specs/spec_list/
*/
decodeMessage: function (bytes) {
var bytes = bytes.slice(0), // clone since parsing is destructive
ndef_message = [],
tnf_byte,
header,
type_length = 0,
payload_length = 0,
id_length = 0,
record_type = [],
id = [],
payload = [];
while(bytes.length) {
tnf_byte = bytes.shift();
header = ndef.decodeTnf(tnf_byte);
type_length = bytes.shift();
if (header.sr) {
payload_length = bytes.shift();
} else {
// next 4 bytes are length
payload_length = ((0xFF & bytes.shift()) << 24) |
((0xFF & bytes.shift()) << 26) |
((0xFF & bytes.shift()) << 8) |
(0xFF & bytes.shift());
}
if (header.il) {
id_length = bytes.shift();
}
record_type = bytes.splice(0, type_length);
id = bytes.splice(0, id_length);
payload = bytes.splice(0, payload_length);
ndef_message.push(
ndef.record(header.tnf, record_type, id, payload)
);
if (header.me) { break; } // last message
}
return ndef_message;
},
/**
* Decode the bit flags from a TNF Byte.
*
* @returns object with decoded data
*
* See NFC Data Exchange Format (NDEF) Specification Section 3.2 RecordLayout
*/
decodeTnf: function (tnf_byte) {
return {
mb: (tnf_byte & 0x80) !== 0,
me: (tnf_byte & 0x40) !== 0,
cf: (tnf_byte & 0x20) !== 0,
sr: (tnf_byte & 0x10) !== 0,
il: (tnf_byte & 0x8) !== 0,
tnf: (tnf_byte & 0x7)
};
},
/**
* Encode NDEF bit flags into a TNF Byte.
*
* @returns tnf byte
*
* See NFC Data Exchange Format (NDEF) Specification Section 3.2 RecordLayout
*/
encodeTnf: function (mb, me, cf, sr, il, tnf) {
var value = tnf;
if (mb) {
value = value | 0x80;
}
if (me) {
value = value | 0x40;
}
// note if cf: me, mb, li must be false and tnf must be 0x6
if (cf) {
value = value | 0x20;
}
if (sr) {
value = value | 0x10;
}
if (il) {
value = value | 0x8;
}
return value;
},
/**
* Convert TNF to String for user friendly display
*
*/
tnfToString: function (tnf) {
var value = tnf;
switch (tnf) {
case ndef.TNF_EMPTY:
value = "Empty";
break;
case ndef.TNF_WELL_KNOWN:
value = "Well Known";
break;
case ndef.TNF_MIME_MEDIA:
value = "Mime Media";
break;
case ndef.TNF_ABSOLUTE_URI:
value = "Absolute URI";
break;
case ndef.TNF_EXTERNAL_TYPE:
value = "External";
break;
case ndef.TNF_UNKNOWN:
value = "Unknown";
break;
case ndef.TNF_UNCHANGED:
value = "Unchanged";
break;
case ndef.TNF_RESERVED:
value = "Reserved";
break;
}
return value;
}
};
// nfc provides javascript wrappers to the native phonegap implementation
var nfc = {
addTagDiscoveredListener: function (callback, win, fail) {
document.addEventListener("tag", callback, false);
cordova.exec(win, fail, "NfcPlugin", "registerTag", []);
},
addMimeTypeListener: function (mimeType, callback, win, fail) {
document.addEventListener("ndef-mime", callback, false);
cordova.exec(win, fail, "NfcPlugin", "registerMimeType", [mimeType]);
},
addNdefListener: function (callback, win, fail) {
document.addEventListener("ndef", callback, false);
cordova.exec(win, fail, "NfcPlugin", "registerNdef", []);
},
addNdefFormatableListener: function (callback, win, fail) {
document.addEventListener("ndef-formatable", callback, false);
cordova.exec(win, fail, "NfcPlugin", "registerNdefFormatable", []);
},
write: function (ndefMessage, win, fail) {
cordova.exec(win, fail, "NfcPlugin", "writeTag", [ndefMessage]);
},
makeReadOnly: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "makeReadOnly", []);
},
share: function (ndefMessage, win, fail) {
cordova.exec(win, fail, "NfcPlugin", "shareTag", [ndefMessage]);
},
unshare: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "unshareTag", []);
},
handover: function (uris, win, fail) {
// if we get a single URI, wrap it in an array
if (!Array.isArray(uris)) {
uris = [ uris ];
}
cordova.exec(win, fail, "NfcPlugin", "handover", uris);
},
stopHandover: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "stopHandover", []);
},
erase: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "eraseTag", [[]]);
},
enabled: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "enabled", [[]]);
},
removeTagDiscoveredListener: function (callback, win, fail) {
document.removeEventListener("tag", callback, false);
cordova.exec(win, fail, "NfcPlugin", "removeTag", []);
},
removeMimeTypeListener: function(mimeType, callback, win, fail) {
document.removeEventListener("ndef-mime", callback, false);
cordova.exec(win, fail, "NfcPlugin", "removeMimeType", [mimeType]);
},
removeNdefListener: function (callback, win, fail) {
document.removeEventListener("ndef", callback, false);
cordova.exec(win, fail, "NfcPlugin", "removeNdef", []);
},
showSettings: function (win, fail) {
cordova.exec(win, fail, "NfcPlugin", "showSettings", []);
}
};
var util = {
// i must be <= 256
toHex: function (i) {
var hex;
if (i < 0) {
i += 256;
}
hex = i.toString(16);
// zero padding
if (hex.length === 1) {
hex = "0" + hex;
}
return hex;
},
toPrintable: function(i) {
if (i >= 0x20 & i <= 0x7F) {
return String.fromCharCode(i);
} else {
return '.';
}
},
bytesToString: function(bytes) {
// based on http://ciaranj.blogspot.fr/2007/11/utf8-characters-encoding-in-javascript.html
var result = "";
var i, c, c1, c2, c3;
i = c = c1 = c2 = c3 = 0;
// Perform byte-order check.
if( bytes.length >= 3 ) {
if( (bytes[0] & 0xef) == 0xef && (bytes[1] & 0xbb) == 0xbb && (bytes[2] & 0xbf) == 0xbf ) {
// stream has a BOM at the start, skip over
i = 3;
}
}
while ( i < bytes.length ) {
c = bytes[i] & 0xff;
if ( c < 128 ) {
result += String.fromCharCode(c);
i++;
} else if ( (c > 191) && (c < 224) ) {
if ( i + 1 >= bytes.length ) {
throw "Un-expected encoding error, UTF-8 stream truncated, or incorrect";
}
c2 = bytes[i + 1] & 0xff;
result += String.fromCharCode( ((c & 31) << 6) | (c2 & 63) );
i += 2;
} else {
if ( i + 2 >= bytes.length || i + 1 >= bytes.length ) {
throw "Un-expected encoding error, UTF-8 stream truncated, or incorrect";
}
c2 = bytes[i + 1] & 0xff;
c3 = bytes[i + 2] & 0xff;
result += String.fromCharCode( ((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63) );
i += 3;
}
}
return result;
},
stringToBytes: function(string) {
// based on http://ciaranj.blogspot.fr/2007/11/utf8-characters-encoding-in-javascript.html
var bytes = [];
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
bytes[bytes.length]= c;
} else if((c > 127) && (c < 2048)) {
bytes[bytes.length] = (c >> 6) | 192;
bytes[bytes.length] = (c & 63) | 128;
} else {
bytes[bytes.length] = (c >> 12) | 224;
bytes[bytes.length] = ((c >> 6) & 63) | 128;
bytes[bytes.length] = (c & 63) | 128;
}
}
return bytes;
},
bytesToHexString: function (bytes) {
var dec, hexstring, bytesAsHexString = "";
for (var i = 0; i < bytes.length; i++) {
if (bytes[i] >= 0) {
dec = bytes[i];
} else {
dec = 256 + bytes[i];
}
hexstring = dec.toString(16);
// zero padding
if (hexstring.length === 1) {
hexstring = "0" + hexstring;
}
bytesAsHexString += hexstring;
}
return bytesAsHexString;
},
// This function can be removed if record.type is changed to a String
/**
* Returns true if the record's TNF and type matches the supplied TNF and type.
*
* @record NDEF record
* @tnf 3-bit TNF (Type Name Format) - use one of the TNF_* constants
* @type byte array or String
*/
isType: function(record, tnf, type) {
if (record.tnf === tnf) { // TNF is 3-bit
var recordType;
if (typeof(type) === 'string') {
recordType = type;
} else {
recordType = nfc.bytesToString(type);
}
return (nfc.bytesToString(record.type) === recordType);
}
return false;
}
};
// this is a module in ndef-js
var textHelper = {
decodePayload: function (data) {
var languageCodeLength = (data[0] & 0x3F), // 6 LSBs
languageCode = data.slice(1, 1 + languageCodeLength),
utf16 = (data[0] & 0x80) !== 0; // assuming UTF-16BE
// TODO need to deal with UTF in the future
// console.log("lang " + languageCode + (utf16 ? " utf16" : " utf8"));
return util.bytesToString(data.slice(languageCodeLength + 1));
},
// encode text payload
// @returns an array of bytes
encodePayload: function(text, lang, encoding) {
// ISO/IANA language code, but we're not enforcing
if (!lang) { lang = 'en'; }
var encoded = util.stringToBytes(lang + text);
encoded.unshift(lang.length);
return encoded;
}
};
// this is a module in ndef-js
var uriHelper = {
// URI identifier codes from URI Record Type Definition NFCForum-TS-RTD_URI_1.0 2006-07-24
// index in array matches code in the spec
protocols: [ "", "http://www.", "https://www.", "http://", "https://", "tel:", "mailto:", "ftp://anonymous:anonymous@", "ftp://ftp.", "ftps://", "sftp://", "smb://", "nfs://", "ftp://", "dav://", "news:", "telnet://", "imap:", "rtsp://", "urn:", "pop:", "sip:", "sips:", "tftp:", "btspp://", "btl2cap://", "btgoep://", "tcpobex://", "irdaobex://", "file://", "urn:epc:id:", "urn:epc:tag:", "urn:epc:pat:", "urn:epc:raw:", "urn:epc:", "urn:nfc:" ],
// decode a URI payload bytes
// @returns a string
decodePayload: function (data) {
var prefix = uriHelper.protocols[data[0]];
if (!prefix) { // 36 to 255 should be ""
prefix = "";
}
return prefix + util.bytesToString(data.slice(1));
},
// shorten a URI with standard prefix
// @returns an array of bytes
encodePayload: function (uri) {
var prefix,
protocolCode,
encoded;
// check each protocol, unless we've found a match
// "urn:" is the one exception where we need to keep checking
// slice so we don't check ""
uriHelper.protocols.slice(1).forEach(function(protocol) {
if ((!prefix || prefix === "urn:") && uri.indexOf(protocol) === 0) {
prefix = protocol;
}
});
if (!prefix) {
prefix = "";
}
encoded = util.stringToBytes(uri.slice(prefix.length));
protocolCode = uriHelper.protocols.indexOf(prefix);
// prepend protocol code
encoded.unshift(protocolCode);
return encoded;
}
};
// added since WP8 must call a named function
// TODO consider switching NFC events from JS events to using the PG callbacks
function fireNfcTagEvent(eventType, tagAsJson) {
setTimeout(function () {
var e = document.createEvent('Events');
e.initEvent(eventType, true, false);
e.tag = JSON.parse(tagAsJson);
console.log(e.tag);
document.dispatchEvent(e);
}, 10);
}
// textHelper and uriHelper aren't exported, add a property
ndef.uriHelper = uriHelper;
ndef.textHelper = textHelper;
// create aliases
nfc.bytesToString = util.bytesToString;
nfc.stringToBytes = util.stringToBytes;
nfc.bytesToHexString = util.bytesToHexString;
// kludge some global variables for plugman js-module support
// eventually these should be replaced and referenced via the module
window.nfc = nfc;
window.ndef = ndef;
window.util = util;
window.fireNfcTagEvent = fireNfcTagEvent;
</script>
<script>
nfc.addNdefListener(onNfc, success, failure);
function onNfc(nfcEvent) {
// display the tag as JSON
move();
alert(JSON.stringify(nfcEvent.tag));
}
function success(result) {
console.log("Listening for NFC Messages");
}
function failure(reason) {
alert("Failed to add NDEF listener");
}
</script>
</body>
</html>