diff --git a/_articles/extended-usage/ocr.md b/_articles/extended-usage/ocr.md index 1d7a29c4..6699acdf 100644 --- a/_articles/extended-usage/ocr.md +++ b/_articles/extended-usage/ocr.md @@ -42,7 +42,7 @@ It will copy an `ocr` folder to Dynamic Web TWAIN Service's [installation folder ### Step Two - Write a Basic Document Scanning Page -Create a HTML file with the following content. It can scan documents from scanners as well as loading local images. +Create an HTML file with the following content. It can scan documents from scanners as well as loading local images. ```html diff --git a/_articles/faq/index.md b/_articles/faq/index.md index da56eb2b..e36e32fa 100644 --- a/_articles/faq/index.md +++ b/_articles/faq/index.md @@ -209,6 +209,7 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 32. [Why am I unable to load the TIFF file into Dynamic Web TWAIN?](/_articles/faq/unable-to-load-4-bit-tiff.md) 33. [Error message - CORS Errors caused by local network access permissions when using Chromium 142 and later](/_articles/faq/chromium-142-local-network-access-issue.md) 34. [Error message - File is Damaged and Can’t Be Opened in macOS](/_articles/faq/file-damaged-on-macos.md) +35. [Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS](/_articles/faq/safari-26-2-regression.md) ## Licensing and Purchase diff --git a/_articles/faq/safari-26-2-regression.md b/_articles/faq/safari-26-2-regression.md new file mode 100644 index 00000000..e0419e9a --- /dev/null +++ b/_articles/faq/safari-26-2-regression.md @@ -0,0 +1,37 @@ +--- +layout: default-layout +noTitleIndex: true +needAutoGenerateSidebar: true +title: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS +keywords: Dynamic Web TWAIN, macos, Auto-Reconnect, 19.3, Safari +breadcrumbText: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS +description: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS +date: 2025-12-31 13:18:47 +0800 +last_modified: 2025-12-31 13:18:47 +0800 +--- + +# Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS + +### Symptom + +After upgrading to Safari 26.2 on macOS, a compatibility issue was observed with Dynamic Web TWAIN v19.3. + +When a site installs or updates the Dynamic Web TWAIN v19.3 Service for the first time, the automatic connection and reconnect mechanism fails. A browser refresh is required to restore normal behavior. + +### Issue characteristics + +- Only occurs in Safari 26.2 +- Does not occur in Safari 26.1 or earlier versions +- Does not occur in Dynamic Web TWAIN versions prior to 19.3 + +### Reason + +Dynamic Web TWAIN 19.3 introduced a new configuration in reconnect requests: `targetAddressSpace: "loopback"`, following the Chrome Local Network Access documentation to explicitly indicate that the request targets the loopback address (127.0.0.1). + +In Safari 26.1 and earlier, this configuration is ignored and requests are sent normally. + +In Safari 26.2, `fetch` throws a `TypeError` when this configuration is present, causing the request to fail before being sent. As a result, `reconnect` cannot be implemented even though the Dynamsoft Service is installed and running. + +### Update + +The WebKit team has identified this issue as a regression in Safari 26.2 and has already fixed it. The fix will be included in an upcoming Safari release. \ No newline at end of file diff --git a/_articles/info/api/restful.md b/_articles/info/api/restful.md index 39a6aeaf..2a29c475 100644 --- a/_articles/info/api/restful.md +++ b/_articles/info/api/restful.md @@ -1519,23 +1519,19 @@ const url = new URL("https://127.0.0.1:18623/api"); const documentuid = `190807444d76`; const pathSegments = ['storage', 'documents', documentuid]; url.pathname = `${url.pathname}/${pathSegments.join('/')}`; - +url.searchParams.set('pages', '190817548d70,190817648270'); +url.searchParams.set('password', 'myFilePassword'); +url.searchParams.set('quality', '50'); + let myHeaders = new Headers(); myHeaders.append("DWT-DOC-PASSWORD", "myPassword"); - -let raw = JSON.stringify({ - pages: '190817548d70,190817648270', - password: 'myFilePassword', - quality: 50 - }); - + let requestOptions = { method: 'GET', headers: myHeaders, - body: raw, redirect: 'follow' }; - + fetch(url, requestOptions) .then(response => response.text()) .then(result => console.log(result)) diff --git a/_articles/info/schedule/Stable.md b/_articles/info/schedule/Stable.md index 48d94f45..3c5ab696 100644 --- a/_articles/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -137,6 +137,10 @@ Updated the names of headers for the REST API. - Fixed a CORS request blocked error which also triggers a prompt to install the Dynamic Web TWAIN Service. - Fixed Vite runtime errors caused by polyfills and resource path misconfiguration. +## 18.5.3 (01/14/2026) + +Updated third-party libraries to enhance security. + ## 18.5.1 (10/22/2024) ### Improvements @@ -1852,4 +1856,4 @@ In v10.0.1 there is no limit to the size of an Http Request. In v10.0, the WebSo * TWAIN specification 1.9 compatible. * Supports Native image transfer mode. -* Supports uploading and downloading image trough FTP. +* Supports uploading and downloading image through FTP. diff --git a/api.json b/api.json new file mode 100644 index 00000000..2e8ba075 --- /dev/null +++ b/api.json @@ -0,0 +1,17 @@ +--- +layout: null +sitemap: false +--- +{ + "articles": [ + {% assign filtered_articles = site.articles | where_exp: "article", "article.url contains '/info/api/'" %} + {% for article in filtered_articles %} + { + "title": {{ article.title | jsonify }}, + "url": "https://www.dynamsoft.com{{ article.url | relative_url }}", + "content": {{ article.content | strip_html | jsonify }}, + "breadcrumb": {{ article.breadcrumbText | default: article.title | jsonify }} + }{% unless forloop.last %},{% endunless %} + {% endfor %} + ] +} \ No newline at end of file diff --git a/articles.json b/articles.json new file mode 100644 index 00000000..4f3d475e --- /dev/null +++ b/articles.json @@ -0,0 +1,16 @@ +--- +layout: null +sitemap: false +--- +{ + "articles": [ + {% for article in site.articles %} + { + "title": {{ article.title | jsonify }}, + "url": "https://www.dynamsoft.com{{ article.url | relative_url }}", + "content": {{ article.content | strip_html | jsonify }}, + "breadcrumb": {{ article.breadcrumbText | default: article.title | jsonify }} + }{% unless forloop.last %},{% endunless %} + {% endfor %} + ] +}