我将 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
我已使用以下命令将 javascript 库包含到我新创建的 Angular 项目中:
npm install dwt --save
npm install @type/dwt --save
另请注意,我的 webtwain.min.js 已添加到我的 angular-cli.json 内的脚本中:
"scripts": [
"../node_modules/dwt/dist/dynamsoft.webtwain.min.js"
这是我的项目的布局:
最后,这是我的 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);
}
}
}
Finally here is the result:
立即弹出显示值为 0% 的“进度条”。在角度 4 中,这种情况不会发生。对于造成这种情况的原因有什么想法吗?我正在尝试阅读 4 和 5 之间的变化,特别是异步和同步加载,但我对这个框架仍然很陌生。
谢谢,
乔什