diff --git a/README.md b/README.md
index 412f178..892b451 100644
--- a/README.md
+++ b/README.md
@@ -3,12 +3,6 @@
[Mobile Web Capture](https://www.dynamsoft.com/use-cases/mobile-web-capture-sdk/?utm_content=nav-solutions) is a solution designed for iOS and Android browsers. It helps developers to build document scanning web applications for mobile users to load, edit, save, and capture images from the camera right in mobile browsers.
-Featured Products:
-
-- [Dynamsoft Document Viewer](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html)
-- [Dynamsoft Document Normalizer](https://www.dynamsoft.com/document-normalizer/docs/web/programming/javascript/)
-
-
Table of Contents
- [Samples](#samples)
@@ -16,6 +10,7 @@ Featured Products:
- [System Requirements](#system-requirements)
- [Documentation](#documentation)
- [Release Notes](#release-notes)
+- [Featured Products](#featured-products)
## Samples
@@ -36,7 +31,7 @@ Featured Products:
The following code snippet is using the public trial license to initialize the license. You can replace the public trial license with your own license key.
```typescript
-await Dynamsoft.License.LicenseManager.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTEwMjQ5NjE5NyJ9", true);// Replase license here
+await Dynamsoft.License.LicenseManager.initLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTEwMjQ5NjE5NyJ9", true); // Replace license here
```
## System Requirements
@@ -57,6 +52,19 @@ Mobile Web Capture requires the following features to work:
The above four features are required for the SDK to work.
+*Note*:
+
+If you open the web page as `file:///` or `http://` , the camera may not work correctly because the API getUserMedia usually requires HTTPS to access the camera.
+
+To make sure your web application can access the camera, please configure your web server to support HTTPS. The following links may help.
+
+1. NGINX: Configuring HTTPS servers
+2. IIS: Create a Self Signed Certificate in IIS
+3. Tomcat: Setting Up SSL on Tomcat in 5 minutes
+4. Node.js: npm tls
+
+If the test doesn't go as expected, you can [contact us](https://www.dynamsoft.com/contact/).
+
### Supported Browsers
The following table is a list of supported browsers based on the above requirements:
@@ -78,3 +86,7 @@ You can check out the detailed documentation of the solution [here](https://www.
Check out the [release notes](https://www.dynamsoft.com/mobile-web-capture/docs/releasenotes/index.html).
+## Featured Products
+
+- [Dynamsoft Document Viewer](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html)
+- [Dynamsoft Document Normalizer](https://www.dynamsoft.com/document-normalizer/docs/web/programming/javascript/)
\ No newline at end of file
diff --git a/samples/capture-continuously-edit-result-images/index.html b/samples/capture-continuously-edit-result-images/index.html
index d4d29dc..db3a3fb 100644
--- a/samples/capture-continuously-edit-result-images/index.html
+++ b/samples/capture-continuously-edit-result-images/index.html
@@ -44,12 +44,23 @@
// Preload DDV Resource
Dynamsoft.DDV.Core.loadWasm();
+ /** LICENSE ALERT - README
+ * To use the library, you need to first specify a license key using the API "initLicense()" as shown below.
+ */
+
// Initialize DDN license
await Dynamsoft.License.LicenseManager.initLicense(
"DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAwLXIxNzAzODM5ODkwIiwibWFpblNlcnZlclVSTCI6Imh0dHBzOi8vbWx0cy5keW5hbXNvZnQuY29tLyIsIm9yZ2FuaXphdGlvbklEIjoiMjAwMDAwIiwic3RhbmRieVNlcnZlclVSTCI6Imh0dHBzOi8vc2x0cy5keW5hbXNvZnQuY29tLyIsImNoZWNrQ29kZSI6MTgyNTQ5Njk4NH0=",
true
);
+ /**
+ * You can visit https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc to get your own trial license good for 30 days.
+ * 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.
+ * For more information, see https://www.dynamsoft.com/mobile-web-capture/docs/gettingstarted/license.html or contact support@dynamsoft.com.
+ * LICENSE ALERT - THE END
+ */
+
updateLoadingText("Loading DDV library...");
// Preload DDN Resource
Dynamsoft.Core.CoreModule.loadWasm(["DDN"]);
diff --git a/samples/detect-boundaries-on-existing-images/index.html b/samples/detect-boundaries-on-existing-images/index.html
index 6b6fbf0..a64b08c 100644
--- a/samples/detect-boundaries-on-existing-images/index.html
+++ b/samples/detect-boundaries-on-existing-images/index.html
@@ -39,12 +39,23 @@
// Preload DDV Resource
Dynamsoft.DDV.Core.loadWasm();
+ /** LICENSE ALERT - README
+ * To use the library, you need to first specify a license key using the API "initLicense()" as shown below.
+ */
+
// Initialize DDN license
await Dynamsoft.License.LicenseManager.initLicense(
"DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAwLXIxNzAzODM5ODkwIiwibWFpblNlcnZlclVSTCI6Imh0dHBzOi8vbWx0cy5keW5hbXNvZnQuY29tLyIsIm9yZ2FuaXphdGlvbklEIjoiMjAwMDAwIiwic3RhbmRieVNlcnZlclVSTCI6Imh0dHBzOi8vc2x0cy5keW5hbXNvZnQuY29tLyIsImNoZWNrQ29kZSI6MTgyNTQ5Njk4NH0=",
true
);
+ /**
+ * You can visit https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc to get your own trial license good for 30 days.
+ * 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.
+ * For more information, see https://www.dynamsoft.com/mobile-web-capture/docs/gettingstarted/license.html or contact support@dynamsoft.com.
+ * LICENSE ALERT - THE END
+ */
+
updateLoadingText("Loading DDV library...");
// Preload DDN Resource
Dynamsoft.Core.CoreModule.loadWasm(["DDN"]);
diff --git a/samples/hello-world/hello-world-angular/README.md b/samples/hello-world/hello-world-angular/README.md
index 1f69ac8..3039c0a 100644
--- a/samples/hello-world/hello-world-angular/README.md
+++ b/samples/hello-world/hello-world-angular/README.md
@@ -33,8 +33,9 @@ Environment: Node.js v18.14.0
## Build
-Run `npm build` to build the project. The build artifacts will be stored in the `build/` directory.
+Run `npm run build` to build the project. The build artifacts will be stored in the `build/` directory.
It correctly bundles Angular in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
+
diff --git a/samples/hello-world/hello-world-angular/package.json b/samples/hello-world/hello-world-angular/package.json
index 23b756b..a11f8ea 100644
--- a/samples/hello-world/hello-world-angular/package.json
+++ b/samples/hello-world/hello-world-angular/package.json
@@ -18,11 +18,11 @@
"@angular/platform-browser": "^17.0.0",
"@angular/platform-browser-dynamic": "^17.0.0",
"@angular/router": "^17.0.0",
- "dynamsoft-capture-vision-router": "^2.0.30",
- "dynamsoft-core": "^3.0.30",
- "dynamsoft-document-normalizer": "^2.0.20",
- "dynamsoft-document-viewer": "^1.1.0",
- "dynamsoft-license": "^3.0.20",
+ "dynamsoft-capture-vision-router": "2.0.30",
+ "dynamsoft-core": "3.0.30",
+ "dynamsoft-document-normalizer": "2.0.20",
+ "dynamsoft-document-viewer": "1.1.0",
+ "dynamsoft-license": "3.0.20",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.2"
diff --git a/samples/hello-world/hello-world-react/README.md b/samples/hello-world/hello-world-react/README.md
index 0057ae6..1d1df2e 100644
--- a/samples/hello-world/hello-world-react/README.md
+++ b/samples/hello-world/hello-world-react/README.md
@@ -33,7 +33,7 @@ Environment: Node.js v18.14.0
## Build
-Run `npm build` to build the project. The build artifacts will be stored in the `build/` directory.
+Run `npm run build` to build the project. The build artifacts will be stored in the `build/` directory.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
diff --git a/samples/hello-world/hello-world-react/package.json b/samples/hello-world/hello-world-react/package.json
index 94749fd..f5cfede 100644
--- a/samples/hello-world/hello-world-react/package.json
+++ b/samples/hello-world/hello-world-react/package.json
@@ -6,11 +6,11 @@
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
- "dynamsoft-capture-vision-router": "^2.0.30",
- "dynamsoft-core": "^3.0.30",
- "dynamsoft-document-normalizer": "^2.0.20",
- "dynamsoft-document-viewer": "^1.1.0",
- "dynamsoft-license": "^3.0.20",
+ "dynamsoft-capture-vision-router": "2.0.30",
+ "dynamsoft-core": "3.0.30",
+ "dynamsoft-document-normalizer": "2.0.20",
+ "dynamsoft-document-viewer": "1.1.0",
+ "dynamsoft-license": "3.0.20",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
diff --git a/samples/hello-world/hello-world-vue3/README.md b/samples/hello-world/hello-world-vue3/README.md
index 0612825..2d20677 100644
--- a/samples/hello-world/hello-world-vue3/README.md
+++ b/samples/hello-world/hello-world-vue3/README.md
@@ -33,7 +33,7 @@ Environment: Node.js v18.14.0
## Build
-Run `npm build` to build the project. The build artifacts will be stored in the `build/` directory.
+Run `npm run build` to build the project. The build artifacts will be stored in the `build/` directory.
It correctly bundles Vue in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
diff --git a/samples/hello-world/hello-world-vue3/package.json b/samples/hello-world/hello-world-vue3/package.json
index 1af6658..5ad062a 100644
--- a/samples/hello-world/hello-world-vue3/package.json
+++ b/samples/hello-world/hello-world-vue3/package.json
@@ -13,11 +13,11 @@
"format": "prettier --write src/"
},
"dependencies": {
- "dynamsoft-capture-vision-router": "^2.0.30",
- "dynamsoft-core": "^3.0.30",
- "dynamsoft-document-normalizer": "^2.0.20",
- "dynamsoft-document-viewer": "^1.1.0",
- "dynamsoft-license": "^3.0.20",
+ "dynamsoft-capture-vision-router": "2.0.30",
+ "dynamsoft-core": "3.0.30",
+ "dynamsoft-document-normalizer": "2.0.20",
+ "dynamsoft-document-viewer": "1.1.0",
+ "dynamsoft-license": "3.0.20",
"vue": "^3.3.10"
},
"devDependencies": {
diff --git a/samples/hello-world/hello-world/index.html b/samples/hello-world/hello-world/index.html
index 18dedf4..6976439 100644
--- a/samples/hello-world/hello-world/index.html
+++ b/samples/hello-world/hello-world/index.html
@@ -45,12 +45,23 @@
// Preload DDV Resource
Dynamsoft.DDV.Core.loadWasm();
+ /** LICENSE ALERT - README
+ * To use the library, you need to first specify a license key using the API "initLicense()" as shown below.
+ */
+
// Initialize DDN license
await Dynamsoft.License.LicenseManager.initLicense(
"DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAwLXIxNzAzODM5ODkwIiwibWFpblNlcnZlclVSTCI6Imh0dHBzOi8vbWx0cy5keW5hbXNvZnQuY29tLyIsIm9yZ2FuaXphdGlvbklEIjoiMjAwMDAwIiwic3RhbmRieVNlcnZlclVSTCI6Imh0dHBzOi8vc2x0cy5keW5hbXNvZnQuY29tLyIsImNoZWNrQ29kZSI6MTgyNTQ5Njk4NH0=",
true
);
+ /**
+ * You can visit https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc to get your own trial license good for 30 days.
+ * 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.
+ * For more information, see https://www.dynamsoft.com/mobile-web-capture/docs/gettingstarted/license.html or contact support@dynamsoft.com.
+ * LICENSE ALERT - THE END
+ */
+
updateLoadingText("Loading DDV library...");
// Preload DDN Resource
Dynamsoft.Core.CoreModule.loadWasm(["DDN"]);
diff --git a/samples/relatively-complete-doc-capturing-workflow/index.html b/samples/relatively-complete-doc-capturing-workflow/index.html
index e91555e..27d5fd7 100644
--- a/samples/relatively-complete-doc-capturing-workflow/index.html
+++ b/samples/relatively-complete-doc-capturing-workflow/index.html
@@ -46,12 +46,23 @@
// Preload DDV Resource
Dynamsoft.DDV.Core.loadWasm();
+ /** LICENSE ALERT - README
+ * To use the library, you need to first specify a license key using the API "initLicense()" as shown below.
+ */
+
// Initialize DDN license
await Dynamsoft.License.LicenseManager.initLicense(
"DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAwLXIxNzAzODM5ODkwIiwibWFpblNlcnZlclVSTCI6Imh0dHBzOi8vbWx0cy5keW5hbXNvZnQuY29tLyIsIm9yZ2FuaXphdGlvbklEIjoiMjAwMDAwIiwic3RhbmRieVNlcnZlclVSTCI6Imh0dHBzOi8vc2x0cy5keW5hbXNvZnQuY29tLyIsImNoZWNrQ29kZSI6MTgyNTQ5Njk4NH0=",
true
);
+ /**
+ * You can visit https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc to get your own trial license good for 30 days.
+ * 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.
+ * For more information, see https://www.dynamsoft.com/mobile-web-capture/docs/gettingstarted/license.html or contact support@dynamsoft.com.
+ * LICENSE ALERT - THE END
+ */
+
updateLoadingText("Loading DDV library...");
// Preload DDN Resource
Dynamsoft.Core.CoreModule.loadWasm(["DDN"]);
diff --git a/samples/review-adjust-detected-boundaries/index.html b/samples/review-adjust-detected-boundaries/index.html
index 07cf92b..0a3e25d 100644
--- a/samples/review-adjust-detected-boundaries/index.html
+++ b/samples/review-adjust-detected-boundaries/index.html
@@ -43,12 +43,23 @@
// Preload DDV Resource
Dynamsoft.DDV.Core.loadWasm();
+ /** LICENSE ALERT - README
+ * To use the library, you need to first specify a license key using the API "initLicense()" as shown below.
+ */
+
// Initialize DDN license
await Dynamsoft.License.LicenseManager.initLicense(
"DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAwLXIxNzAzODM5ODkwIiwibWFpblNlcnZlclVSTCI6Imh0dHBzOi8vbWx0cy5keW5hbXNvZnQuY29tLyIsIm9yZ2FuaXphdGlvbklEIjoiMjAwMDAwIiwic3RhbmRieVNlcnZlclVSTCI6Imh0dHBzOi8vc2x0cy5keW5hbXNvZnQuY29tLyIsImNoZWNrQ29kZSI6MTgyNTQ5Njk4NH0=",
true
);
+ /**
+ * You can visit https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc to get your own trial license good for 30 days.
+ * 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.
+ * For more information, see https://www.dynamsoft.com/mobile-web-capture/docs/gettingstarted/license.html or contact support@dynamsoft.com.
+ * LICENSE ALERT - THE END
+ */
+
updateLoadingText("Loading DDV library...");
// Preload DDN Resource
Dynamsoft.Core.CoreModule.loadWasm(["DDN"]);