使用 Angular 5 自动显示 DWT Java 脚本库进度对话框

jos*_*yte 3 javascript angular angular5

我正在将 Dynamic Web Twain javascript 库合并到我的 angular 应用程序中,以允许我的最终用户使用 Web 浏览器而不是桌面应用程序进行扫描。

加载页面后,立即弹出进度条。这不是预期的行为,在我使用 angular 4 时也不会发生。我在工作中使用 angular 5。我使用哪种浏览器(IE、Chrome、Firefox)也没有区别。

我的 Angular 版本是:

> Angular CLI: 1.6.6 Node: 9.4.0 OS: win32 x64 Angular: 5.2.3 ...
> animations, common, compiler, compiler-cli, core, forms ... http,
> language-service, platform-browser ... platform-browser-dynamic,
> router
> 
> @angular/cli: 1.6.6 @angular-devkit/build-optimizer: 0.0.42
> @angular-devkit/core: 0.0.29 @angular-devkit/schematics: 0.0.52
> @ngtools/json-schema: 1.1.0 @ngtools/webpack: 1.9.6
> @schematics/angular: 0.1.17 typescript: 2.5.3 webpack: 3.10.0
Run Code Online (Sandbox Code Playgroud)

我已使用以下命令将 javascript 库包含到我新创建的 Angular 项目中:

npm install dwt --save
npm install @type/dwt --save
Run Code Online (Sandbox Code Playgroud)

另请注意,我的 webtwain.min.js 已添加到我的 angular-cli.json 中的脚本中:

"scripts": [
    "../node_modules/dwt/dist/dynamsoft.webtwain.min.js"
Run Code Online (Sandbox Code Playgroud)

这是我的项目的布局:

在此处输入图片说明

最后,这是我的 component.ts 文件及其相关的 html(无论我如何填充 html,结果都是一样的):

    /// <reference types="dwt" />

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-scan',
  template: '<button (click)="acquireImage()">Scan Document</button><div id="dwtcontrolContainer"></div>',
  styleUrls: ['./scan.component.css']
})
export class ScanComponent implements OnInit {

  constructor() { }

  ngOnInit() {

  }


  acquireImage(): void {
    const dwObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
    dwObject.IfShowIndicator = false;
    const bSelected = dwObject.SelectSource();
    if (bSelected) {
      const onAcquireImageSuccess = () => { dwObject.CloseSource(); };
      const onAcquireImageFailure = onAcquireImageSuccess;
      dwObject.OpenSource();
      dwObject.AcquireImage({}, onAcquireImageSuccess, onAcquireImageFailure);
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

最后是结果: 在此处输入图片说明

显示值为 0% 的“进度条”立即弹出。在角度 4 中,这不会发生。关于是什么原因造成的任何想法?我正在尝试阅读 4 和 5 之间的变化,特别是异步和同步加载,但我对这个框架还是个新手。

谢谢,乔希

Tom*_*m.K 5

我是来自 Dynamsoft 的 Tom。

您在此处发布的内容是 SDK Dynamic Web TWAIN v13.3 中的一个已知问题。

这是修复

  1. 更新 CSS (dynamsoft_dwt_html5.css) 以添加以下内容

    dialog[closed] { display: none; }

  2. 更新 dynamsoft.webtwain.initiate.js 以应用新的 CSS 规则

    m.showDialog=function(y){var z=this,v;if(z.open){j.error("showDialog called on open dialog.");return}z.open=i;z.removeAttribute("closed");

    m.closeDialog=function(t){var v=this;if(!v.open){j.error("closeDialog called on closed dialog.")}v.open=o;v.removeAttribute("open");v.setAttribute("closed","closed");

    y.push('<dialog class="dynamsoft-dwt-dialogProgress" closed="closed" style="top:30%">

由于代码已最小化,因此在您自己的 JS 副本中可能看起来有所不同,如果您愿意,可以向我们的支持团队发送电子邮件(support@dynamsoft.com,如果可能,请使用您的企业电子邮件地址)获取补丁。谢谢。

顺便说一句,该补丁将成为即将发布的v13.4 的一部分。