Skip to content

Commit 7bd6cf4

Browse files
committed
Fix remaining P0 issues and add README.html
- Fix canonical URL in read-an-image.html (missing basics/ path) - Fix canonical URL in read-and-parse-GS1-AI (wrong sub-path) - Add LICENSE ALERT comment to hello-world.html and scan-a-single-barcode.html for consistency - Fix documentation link in README.md (point to user-guide) - Add styled README.html for local/ZIP readability
1 parent 8913463 commit 7bd6cf4

6 files changed

Lines changed: 218 additions & 3 deletions

File tree

README.html

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
6+
<link rel="icon" href="data:image/x-icon;base64,AAABAAIAICAAAAEACACoCAAAJgAAABAQAAABAAgAaAUAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAABON/gAUjf4AGI/+AB+T/gAgk/4AKJf+ACuZ/gAynP4AOJ/+AD2h/gBBov4ARaX+AEim/gBLqP4AT6r+AFCq/gBWrf4AXbD+AGm2/gBuuf4Adbz+AHu//gB8v/4AgcL+AIXE/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAGAwVAAAAABUMFwAAAAAAAAAAAAAAAAAAAAAAAAAADAEBARQAAAAAFAEBAQoAAAAAAAAAAAAAAAAAAAAAEAEBAQEBFAAAAAAUAQEBAQEMAAAAAAAAAAAAAAAAAAUBAQEBAQEUAAAAABQBAQEBAQEEAAAAAAAAAAAAAAADAQEBAQEBARQAAAAAFAEBAQEBAQEBAAAAAAAAAAAAAwEBAQEBAQEBFAAAAAAUAQEBAQEBAQEBAAAAAAAAAAUBAQEBAQEBARAAAAAAAAAQAwEBAQEBAQEEAAAAAAAQAQEBAQEBAQ0AAAAAAAAAAAAAEAEBAQEBAQEMAAAAAAEBAQEBAQEXAAAAAAAAAAAAAAAAGAEBAQEBAQEAAAANAQEBAQEBFwAAAAAAAAAAAAAAAAAAGAEBAQEBAQkAGAEBAQEBAQ0AAAAAAAAAAAAAAAAAAAAAEAEBAQEBARgMAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBDAgBAQEBAQ4AAAAAAAAAAAAAAAAAAAAAAAARAQEBAQEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAABgYGBgYIDAEBAwEBDAAAAAAAAAAAAAAAAAAAAAAAABABAwEDAQwYAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBGAABAQEBAQEKAAAAAAAAAAAAAAAAAAAAAA0BAQEBAQEAAA4BAQEBAQETAAAAAAAAAAAAAAAAAAAXAQEBAQEBDAAAAAEBAQEBAQETAAAAAAAAAAAAAAAAFQEBAQEBAQEAAAAAEgEBAQEBAQEKAAAAAAAAAAAAAAoBAQEBAQEBEAAAAAAABgEBAQEBAQEBCgAAAAAAAAwBAQEBAQEBAQUAAAAAAAAAAwEBAQEBAQEBFAAAAAAUAQEBAQEBAQEDAAAAAAAAAAAAAwEBAQEBAQEUAAAAABQBAQEBAQEBAwAAAAAAAAAAAAAABgEBAQEBARQAAAAAFAEBAQEBAQUAAAAAAAAAAAAAAAAAEgEBAQEBFAAAAAAUAQEBAQEQAAAAAAAAAAAAAAAAAAAAAA4BAQEUAAAAABQBAQEMAAAAAAAAAAAAAAAAAAAAAAAAAAAYEBgAAAAAGA4YAAAAAAAAAAAAAAD/48f//4PB//4DwH/8A8A/+APAH/ADwA/gB+AHwB/4A8A//AOAf/4BAP//AAH//4AB//+A//////////////////////////8D///AAf//gAH//4CA//8BgH/+AcA//APAH/gD4AfgB/ADwA/4A8Af/APAP/4DwH//g8H//+PH/ygAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAE43+AB+T/gAtmf4ANJ3+AD2h/gBBo/4ASqf+AEuo/gBOqf4AUar+AFOs/gBUrP4AWK7+AF2w/gBhs/4AcLr+AHS7/gB4vv4AgcL9AIfE/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAOCQAACQ4AAAAAAAAAAA0BAQYAAAYBAQwAAAAAAAUBAQEGAAAGAQEBBAAAAA0BAQEMAAAAAAwBAQEMAAABAQETAAAAAAAAEwEBAQAPAQEJAAAAAAAAAAAMAQEOEQ8PAAAAAAAAAAAAAA8PEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAICAAAAAAAAAAAAAAICAw8BAQcAAAAAAAAAAAwBAQ4AAQEBEgAAAAAAABMBAQEAAA4BAQEHAAAAAAkBAQENAAAABQEBAQYAAAYBAQEFAAAAAAAOAQEGAAAGAQENAAAAAAAAAAAPDAAADA8AAAAAAPmfAADhhwAAwYMAAIPBAACH4QAAD/AAAB/4AAD//wAA//8AAB/4AAAP8AAAh+EAAIPBAADBgwAA4YcAAPmfAAA=" type="image/x-icon" />
7+
<title>Dynamsoft Barcode Reader JS — README</title>
8+
<style>
9+
* { margin: 0; padding: 0; box-sizing: border-box; }
10+
body {
11+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
12+
color: #24292e;
13+
background: #ffffff;
14+
line-height: 1.6;
15+
padding: 0 20px 60px;
16+
}
17+
.container {
18+
max-width: 860px;
19+
margin: 0 auto;
20+
}
21+
22+
/* Header */
23+
.header {
24+
text-align: center;
25+
padding: 40px 0 24px;
26+
border-bottom: 2px solid #e1e4e8;
27+
margin-bottom: 32px;
28+
}
29+
.header svg { height: 48px; margin-bottom: 16px; }
30+
.header h1 { font-size: 1.8em; font-weight: 600; margin-bottom: 8px; }
31+
.header p { color: #586069; font-size: 1.05em; }
32+
33+
/* Quick Start card */
34+
.quick-start {
35+
background: #f0f7ff;
36+
border: 1px solid #c8e1ff;
37+
border-radius: 8px;
38+
padding: 20px 28px;
39+
margin-bottom: 32px;
40+
}
41+
.quick-start h2 { font-size: 1.15em; color: #0366d6; margin-bottom: 12px; }
42+
.quick-start ol { padding-left: 20px; }
43+
.quick-start li { margin-bottom: 6px; }
44+
.quick-start code {
45+
background: #e8f0fe;
46+
padding: 2px 6px;
47+
border-radius: 3px;
48+
font-size: 0.92em;
49+
}
50+
.quick-start a { color: #0366d6; }
51+
52+
/* Sections */
53+
h2 {
54+
font-size: 1.3em;
55+
font-weight: 600;
56+
margin: 32px 0 12px;
57+
padding-bottom: 8px;
58+
border-bottom: 1px solid #e1e4e8;
59+
}
60+
h3 { font-size: 1.05em; font-weight: 600; margin: 20px 0 8px; }
61+
p { margin-bottom: 12px; }
62+
ul, ol { padding-left: 24px; margin-bottom: 12px; }
63+
li { margin-bottom: 4px; }
64+
a { color: #0366d6; text-decoration: none; }
65+
a:hover { text-decoration: underline; }
66+
code {
67+
background: #f6f8fa;
68+
padding: 2px 6px;
69+
border-radius: 3px;
70+
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
71+
font-size: 0.9em;
72+
}
73+
74+
/* Browser table */
75+
table {
76+
border-collapse: collapse;
77+
margin-bottom: 16px;
78+
width: auto;
79+
}
80+
th, td {
81+
border: 1px solid #e1e4e8;
82+
padding: 8px 16px;
83+
text-align: center;
84+
}
85+
th { background: #f6f8fa; font-weight: 600; }
86+
87+
/* Callout */
88+
.callout {
89+
background: #fffbdd;
90+
border: 1px solid #f9c513;
91+
border-radius: 6px;
92+
padding: 12px 16px;
93+
margin: 12px 0;
94+
font-size: 0.95em;
95+
}
96+
.callout-note {
97+
background: #f1f8ff;
98+
border-color: #79b8ff;
99+
}
100+
101+
/* Footer */
102+
.footer {
103+
margin-top: 48px;
104+
padding-top: 20px;
105+
border-top: 1px solid #e1e4e8;
106+
color: #586069;
107+
font-size: 0.9em;
108+
text-align: center;
109+
}
110+
</style>
111+
</head>
112+
<body>
113+
<div class="container">
114+
115+
<div class="header">
116+
<!-- Dynamsoft logo (inline SVG, from logo-dynamsoft-black.svg) -->
117+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 159 39"><style>.st0{fill:#323234}.st1{fill:#F99D31}</style><path class="st0" d="M0,5.3h6.9c4.8,0,7.4,2.6,7.4,8.2v10.8c0,5.6-2.6,8.2-7.4,8.2H0V5.3z M4.7,28.7h1.6c2.5,0,3.4-0.9,3.4-3.8V12.9c0-2.9-0.9-3.8-3.4-3.8H4.7V28.7z"/><path class="st0" d="M26.6,12.2h4.3L25.6,34c-0.9,3.7-2.6,4.9-5.8,4.9H18v-3.5h1c2.1,0,2.8-1.1,2.8-3.3c0-0.8-0.2-1.7-0.5-2.7L17,12.2h4.3l2.7,13h0.1L26.6,12.2z"/><path class="st0" d="M33.3,32.5V12.2h4v2c1.8-1.5,2.7-2.4,5.1-2.4c2.2,0,3.5,1.6,3.5,4.3v16.4h-4.2V16.8c0-1-0.6-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9H33.3z"/><path class="st0" d="M49.6,18.2c0.2-4.1,2.8-6.3,6.8-6.3c3.9,0,6.2,1.8,6.2,5.5v13c0,0.6,0.2,1.5,0.3,2.2h-4c0-0.6-0.2-1.1-0.2-1.6c-1.6,1.3-2.9,2-4.9,2c-2.9,0-4.3-2-4.3-4.6c0-4.5,2.9-6.9,9-9.2v-1.2c0-1.7-0.7-2.6-2.1-2.6c-1.9,0-2.3,1.1-2.4,2.9H49.6z M58.4,22.2c-3.8,2.2-4.8,3.6-4.8,5.4c0,1.3,0.7,1.8,2,1.8c1.2,0,2.1-0.9,2.8-1.9V22.2z"/><path class="st0" d="M75.3,32.5V16.8c0-1-0.6-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9h-4.2V12.2h4v2c1.8-1.5,2.7-2.4,4.7-2.4c2.1,0,2.8,0.8,3.7,2.4c2-2,3.2-2.4,4.7-2.4c2.6,0,4,1.6,4,4.3v16.4h-4.2V16.8c0-1-0.7-1.5-1.5-1.5c-0.9,0-1.7,0.6-2.7,1.3v15.9H75.3z"/><path class="st0" d="M151.8,27.2h-1v-0.9h3.1v0.9h-1v5.3h-1.1V27.2z"/><path class="st0" d="M158.9,26.3v6.2h-0.9v-4.9h0l-1,4.9h-0.5l-1-4.9h0v4.9h-0.9v-6.2h1.4l0.8,3.6h0l0.8-3.6H158.9z"/><polygon class="st0" points="118.9,0 114,0 116.5,6.3"/><path class="st1" d="M99.7,17.8c-0.3-1.6-1.1-2.5-2.4-2.5c-1.1,0-1.9,0.6-1.9,1.6c0,3.2,7.9,4.5,7.9,10.5c0,3.6-2.5,5.5-5.9,5.5c-3.7,0-5.8-2.1-6.5-5.7l3.7-1c0.3,1.7,0.9,3.2,2.8,3.2c1.1,0,1.9-0.6,1.9-1.8c0-3.5-7.9-4.8-7.9-10.4c0-3.2,2.5-5.4,5.7-5.4c3.3,0,5.5,2.2,6.2,5.4L99.7,17.8z"/><path class="st1" d="M130.5,15.7H128v-3.5h2.5V9.7c0-3.3,1.7-4.8,4.7-4.8h2.1v3.5h-1.2c-1,0-1.4,0.4-1.4,1.4v2.5h2.4v3.5h-2.4v16.8h-4.2V15.7z"/><path class="st1" d="M138.5,15.7v-3.5h2.3V6.7h4.2v5.5h2.8v3.5h-2.8v11.7c0,1.1,0.5,1.7,1.4,1.7h1.4v3.6c-0.6,0.2-1.1,0.2-2.1,0.2c-3.2,0-4.9-1.5-4.9-4.6V15.7H138.5z"/><path class="st1" d="M114.7,15.7v-4.2c-4.7,0.7-8.4,4.5-9,9.2h4.2C110.4,18.2,112.3,16.3,114.7,15.7z"/><path class="st1" d="M123,20.6h4.2c-0.7-4.7-4.4-8.5-9.1-9.2v4.2C120.5,16.2,122.4,18.2,123,20.6z"/><path class="st1" d="M110,24h-4.2c0.8,4.6,4.4,8.2,9,8.9v-4.2C112.4,28.1,110.6,26.3,110,24z"/><path class="st1" d="M118.1,28.7v4.2c4.6-0.7,8.3-4.3,9.1-8.9h-4.2C122.3,26.3,120.4,28.1,118.1,28.7z"/></svg>
118+
<h1>Barcode Reader JavaScript Edition</h1>
119+
<p>Sample code for building web-based barcode scanning applications</p>
120+
</div>
121+
122+
<div class="quick-start">
123+
<h2>Quick Start</h2>
124+
<ol>
125+
<li>Open <a href="./index.html"><strong>index.html</strong></a> to browse all samples with live demo links.</li>
126+
<li>Or double-click any HTML in <code>basics/</code> to run it immediately (internet required for CDN).</li>
127+
<li>For framework samples (<code>frameworks/</code>), run <code>npm install</code> then <code>npm run dev</code> in each subfolder.</li>
128+
</ol>
129+
</div>
130+
131+
<h2>System Requirements</h2>
132+
133+
<h3>Secure Context (HTTPS)</h3>
134+
<p>
135+
Production deployments must use HTTPS. Camera access and Dynamsoft licensing both require a secure context.
136+
</p>
137+
<p class="callout callout-note">
138+
For local development, <code>http://127.0.0.1</code>, <code>http://localhost</code>, and <code>file:///</code> are allowed by most browsers.
139+
</p>
140+
141+
<h3>Browser Compatibility</h3>
142+
<table>
143+
<tr><th>Browser</th><th>Version</th></tr>
144+
<tr><td>Chrome</td><td>v78+</td></tr>
145+
<tr><td>Firefox</td><td>v68+</td></tr>
146+
<tr><td>Edge</td><td>v79+</td></tr>
147+
<tr><td>Safari</td><td>v14.5+</td></tr>
148+
</table>
149+
150+
<h2>License</h2>
151+
<p>
152+
A default trial license is included which allows you to test the sample apps for up to 24 hours.
153+
You can <a href="https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&package=js&utm_source=sampleReadme">request a 30-day trial license</a> via the Dynamsoft website to evaluate further.
154+
</p>
155+
<p class="callout">
156+
<strong>Important:</strong> Once your trial license expires, the SDK will throw an error and cease to function.
157+
Visit the <a href="https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=sampleReadme&package=js">Dynamsoft Customer Portal</a>
158+
to view your trial license details. The trial period can be extended to a total of 60 days.
159+
</p>
160+
161+
<h2>Running Samples Locally</h2>
162+
<p>
163+
The standalone samples in <code>basics/</code> and the scenario samples load the SDK from a CDN,
164+
so you can open them directly by double-clicking — no web server required (internet connection needed).
165+
</p>
166+
<p>
167+
If you need a local web server (e.g., to serve SDK resources from <code>dist/</code>), a quick option using
168+
<a href="https://code.visualstudio.com/">Visual Studio Code</a>:
169+
</p>
170+
<ol>
171+
<li>Install the <a href="https://marketplace.visualstudio.com/items?itemName=yandeu.five-server">Five Server</a> extension.</li>
172+
<li>Right-click an HTML file → "Open with Five Server" → served at <code>http://127.0.0.1:5500/</code>.</li>
173+
</ol>
174+
175+
<h2>Sample Folders</h2>
176+
<ul>
177+
<li><strong><code>basics/</code></strong> — Three foundational samples: hello-world, scan-a-single-barcode, and read-an-image.</li>
178+
<li><strong><code>scenarios/</code></strong> — Real-world use cases: inventory scanning, VIN reading, GS1 parsing, and more.</li>
179+
<li><strong><code>frameworks/</code></strong> — Integrations for Angular, React, Vue, Next.js, Svelte, Blazor, Capacitor, Electron, and others.</li>
180+
</ul>
181+
182+
<h2>Documentation</h2>
183+
<ul>
184+
<li><a href="https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?utm_source=sampleReadme">Developer Guide</a></li>
185+
<li><a href="https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/index.html?utm_source=sampleReadme">API Reference</a></li>
186+
</ul>
187+
188+
<h2>Support</h2>
189+
<p>
190+
Questions? <a href="https://www.dynamsoft.com/company/contact?utm_source=sampleReadme">Contact Dynamsoft support</a>.
191+
</p>
192+
193+
<div class="footer">
194+
<p>&copy; Dynamsoft. All rights reserved. | <a href="https://www.dynamsoft.com/">dynamsoft.com</a></p>
195+
</div>
196+
197+
</div>
198+
</body>
199+
</html>

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ The repository includes two main sample directories:
8484

8585
## Documentation
8686

87-
For the developer guide and full API reference of Dynamsoft Barcode Reader JavaScript library, please check out the [documentation](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/?ver=11.4.2001&utm_source=sampleReadme).
87+
For the developer guide and full API reference of Dynamsoft Barcode Reader JavaScript library, please check out the [documentation](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?utm_source=sampleReadme).
8888

8989
- [API Docs](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/index.html?utm_source=sampleReadme)
9090

basics/hello-world.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ <h1 class="barcode-scanner-title">
2525
<script>
2626
const resultView = document.querySelector(".result-view");
2727

28+
/** LICENSE ALERT - README
29+
* To use the library, you need to first specify a license key.
30+
*
31+
* You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days.
32+
* Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license.
33+
* For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html#license&utm_source=samples or contact support@dynamsoft.com.
34+
* LICENSE ALERT - THE END
35+
*/
2836
Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9");
2937
(async () => {
3038
const cameraView = await Dynamsoft.DCE.CameraView.createInstance();

basics/read-an-image.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
77
<meta name="description" content="Read barcodes from an image with Dynamsoft Barcode Reader." />
88
<meta name="keywords" content="barcode, image" />
9-
<link rel="canonical" href="https://demo.dynamsoft.com/Samples/DBR/JS/read-an-image.html" />
9+
<link rel="canonical" href="https://demo.dynamsoft.com/Samples/DBR/JS/basics/read-an-image.html" />
1010
<title>Dynamsoft Barcode Reader Sample - Hello World (Read an Image)</title>
1111

1212
<script src="https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.4.2001/dist/dbr.bundle.js"></script>

basics/scan-a-single-barcode.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ <h1 class="barcode-scanner-title">
2323
<!-- This div will host the barcode scanner's camera view -->
2424
<div class="barcode-scanner-view"></div>
2525
<script>
26+
/** LICENSE ALERT - README
27+
* To use the library, you need to first specify a license key.
28+
*
29+
* You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days.
30+
* Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license.
31+
* For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html#license&utm_source=samples or contact support@dynamsoft.com.
32+
* LICENSE ALERT - THE END
33+
*/
2634
Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9");
2735
const pInit = (async () => {
2836
const cameraView = await Dynamsoft.DCE.CameraView.createInstance();

scenarios/read-and-parse-GS1-AI/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
77
<meta name="description" content="Instantly Read GS1-AI barcodes and Parse It with Dynamsoft Barcode Reader." />
88
<meta name="keywords" content="read GS1 AI barcode" />
9-
<link rel="canonical" href="https://demo.dynamsoft.com/Samples/DBR/JS/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/index.html" />
9+
<link rel="canonical" href="https://demo.dynamsoft.com/Samples/DBR/JS/scenarios/read-and-parse-GS1-AI/index.html" />
1010
<link rel="stylesheet" href="./index.css">
1111
<title>Dynamsoft Barcode Reader Sample - Read a GS1-AI</title>
1212
</head>

0 commit comments

Comments
 (0)