Хорошо, я наконец понял это.
Есть несколько вещей, чтобы заставить это работать. Прежде всего, расскажите компилятору typcript о типе, включив пакет @ types / openfin - npm. Вы заметите, что редактор начнет распознавать тип в его значении intellisense, но когда вы создаете приложение, компилятор машинописного текста выдаст исключение - «не удается найти имя« fin ».
Чтобы это исправить, откройте свой tsconfig.json и убедитесь, что вы включили либо: -
1. Вся папка @types в typeroots
2. Типы плавников в массиве типов.
{
..
"target": "es5",
"typeRoots": [
"node_modules / @ типы"
],
...
}
}
После этого изменения приложение должно скомпилироваться без ошибок при наборе текста.
Теперь, в вашем компоненте приложения, вам нужен способ узнать, работает ли приложение под открытым плавником. Как только переменная fin станет доступной, мы сможем использовать шину InterApplication и все остальные возможности openfin. Базовый компонент приложения может выглядеть так: -
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'test-ang';
version: string;
private _mainWin: fin.OpenFinWindow;
constructor() {
this.init();
}
init() {
try {
fin.desktop.main(() => this.initWithOpenFin());
} catch (err) {
this.initNoOpenFin();
}
};
initWithOpenFin() {
this._mainWin = fin.desktop.Window.getCurrent();
fin.desktop.System.getVersion(function (version) {
try {
this.version = "OpenFin version " + version;
} catch (err) {
//---
}
});
}
initNoOpenFin() {
alert("OpenFin is not available - you are probably running in a browser.");
}
}