1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="utf-8 ">
5
+ < meta name ="viewport " content ="width=device-width,initial-scale=1.0 ">
6
+ < link rel ="manifest " href ="./manifest.json ">
7
+ </ head >
8
+ < body >
9
+
10
+ Choose image(s) to decode:
11
+ < input id ="ipt-file " type ="file " multiple accept ="image/png,image/jpeg,image/bmp,image/gif ">
12
+ < br > < br >
13
+ < button id ="btn-show-scanner "> show scanner</ button >
14
+
15
+ <!-- Please visit https://www.dynamsoft.com/CustomerPortal/Portal/TrialLicense.aspx to get a trial license. -->
16
+ < script src ="https://cdn.jsdelivr.net/npm/dynamsoft-javascript-barcode@7.3.0-v4/dist/dbr.js " data-productKeys ="PRODUCT-KEYS "> </ script >
17
+
18
+ < script >
19
+ // Dynamsoft.BarcodeReader._bUseFullFeature = true; // Control of loading min wasm or full wasm.
20
+
21
+ // reader for decoding picture
22
+ let reader = null ;
23
+ // scanner for decoding video
24
+ let scanner = null ;
25
+
26
+ // decode input picture
27
+ document . getElementById ( 'ipt-file' ) . addEventListener ( 'change' , async function ( ) {
28
+ try {
29
+ reader = reader || await Dynamsoft . BarcodeReader . createInstance ( ) ;
30
+ let resultsToAlert = [ ] ;
31
+ for ( let i = 0 ; i < this . files . length ; ++ i ) {
32
+ let file = this . files [ i ] ;
33
+ resultsToAlert . push ( i + '. ' + file . name + ":" ) ;
34
+ let results = await reader . decode ( file ) ;
35
+ console . log ( results ) ;
36
+ for ( let result of results ) {
37
+ resultsToAlert . push ( result . barcodeText ) ;
38
+ }
39
+ }
40
+ alert ( resultsToAlert . join ( '\n' ) ) ;
41
+ } catch ( ex ) {
42
+ alert ( ex . message ) ;
43
+ throw ex ;
44
+ }
45
+ this . value = '' ;
46
+ } ) ;
47
+
48
+ // decode video from camera
49
+ document . getElementById ( 'btn-show-scanner' ) . addEventListener ( 'click' , async ( ) => {
50
+ try {
51
+ scanner = scanner || await Dynamsoft . BarcodeScanner . createInstance ( ) ;
52
+ scanner . onFrameRead = results => {
53
+ if ( results . length ) {
54
+ console . log ( results ) ;
55
+ }
56
+ } ;
57
+ scanner . onUnduplicatedRead = ( txt , result ) => {
58
+ alert ( result . barcodeFormatString + ': ' + txt ) ;
59
+ } ;
60
+ await scanner . show ( ) ;
61
+ } catch ( ex ) {
62
+ alert ( ex . message ) ;
63
+ throw ex ;
64
+ }
65
+ } ) ;
66
+ if ( 'serviceWorker' in navigator ) {
67
+ navigator . serviceWorker . register ( './service-worker.js' ) ;
68
+ }
69
+ </ script >
70
+ </ body >
71
+ </ html >
0 commit comments