如何在主要渲染过程之外调用电子更新程序

时间:2019-08-25 01:40:51

标签: angular electron electron-builder electron-updater

我正在使用angular-electron创建桌面应用程序
我将electron-builder用于支持electron-updater

自动更新的包装

通过从入口点main.ts调用功能,一切都可以正常工作

import {autoUpdater} from 'electron-updater';
autoUpdater.checkForUpdatesAndNotify();

我想从角度调用checkForUpdatesAndNotify,以便用户可以通过单击按钮来手动检查更新。
首先,我尝试使用在main.ts中完成的方法,但是找不到该方法。因此,我尝试通过remote来获取它,但是仍然出现错误。

import { remote } from 'electron';

@Injectable()
export class UpdaterService {
  console.log('try update');
  remote.require('electron-updater').checkForUpdatesAndNotify();
  console.log('success');
}

uncaught TypeError: remote.require(...).checkForUpdatesAndNotify is not a function
    at SafeSubscriber._next (updater.service.ts:17)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:192)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next (Subscriber.js:130)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next (Subscriber.js:76)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:84)
    at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:15)
    at InnerSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
    at ThrowIfEmptySubscriber.push../node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.ThrowIfEmptySubscriber._next (throwIfEmpty.js:32)
    at ThrowIfEmptySubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)

怎么了?

1 个答案:

答案 0 :(得分:0)

remote.require('electron-updater').autoUpdater.checkForUpdates()