>

선정 버전 3.0.7에서 각도 5.2.11을 사용하고 전자 메뉴를 사용하여 각도 5 구성 요소를 탐색하려고합니다. 전자 메뉴를 클릭하면 페이지로 이동하지만 전자 창을 클릭 할 때까지 구성 요소는 각도 수명주기 후크가 아닌 생성자를 실행합니다. 그러면 페이지가로드되어 예상대로 작동합니다.

menu.js 파일 :

const { Menu } = require('electron');
const menuTemplate = [
      label: 'Maintenance',
      submenu: [
          {
              label: 'Sar Maintenance',
          }
      ];
menu = Menu.buildFromTemplate(menuTemplate);    
Menu.setApplicationMenu(menu);
exports.ApplicationMenu = menu;

index.ts 파일 :

const { app } = require('electron');
const BrowserWindow = require('electron').BrowserWindow
let ipcm = require('electron').ipcMain;
let appmenu = require('./menu.js');
let menu = appmenu.ApplicationMenu;
let mainWindow;
function createMainWindow () {
    mainWindow = new BrowserWindow({width:  800, height: 800});
    mainWindow.loadURL(`file://${__dirname}/index.html`);
    menu.items[1].click = () => {    // Sar Mainenance
        mainWindow.webContents.send('goto-sar', 'sarArg');
    }
    mainWindow.on('closed', () => {
        mainWindow = null
    });
}
app.on('ready', createMainWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
});
app.on('activate', () => {
  if (mainWindow === null) {
    createMainWindow()
  }
})
ipcm.on('page-nav-complete', () => {
    console.log('NavComplete');
    app.focus();
});

각 app.component.ts :

let ipcRenderer = require('electron').ipcRenderer;
app.component.ts constructor:
ipcRenderer.on('goto-sar', function(sender, arg) {
  this.openSar();
});

app.component.ts의 각도 메소드 :

openSar () {
    this._router.navigate(['/sargen']);
    ipcRenderer.send('page-nav-complete');
}

메인 윈도우가 포커스를 얻지 못하는 것 같습니까? 내가 뭘 잘못하고 있니?

  • 답변 # 1

    NgZone.run() 를 사용해야합니다 . 더 많은 정보-Angular NgZone. 이것이 Electron과 Angular를 작동시키고 ipcRenderer 내에서 경로 탐색을 사용하기 위해해야했던 일입니다. .

    import { OnInit, NgZone } from '@angular/core';
    let ipcRenderer = require('electron').ipcRenderer;
    export class MyComponent implements OnInit {
        constructor(private ngZone: NgZone) { }
        ngOnInit() {
            ipcRenderer.on('goto-sar', (event, arg) => {
                this.ngZone.run(() => {
                    this.openSar();
                });
            });
        }
    }
    
    

  • 이전 php - AJAX 스크립트에서만 세션 변수가 사라짐
  • 다음 c# - 크롬, 파이어 폭스 및 사파리 브라우저에 대한 Azure 브라우저 푸시 알림