本文整理匯總了TypeScript中electron-updater.AppUpdater類的典型用法代碼示例。如果您正苦於以下問題:TypeScript AppUpdater類的具體用法?TypeScript AppUpdater怎麽用?TypeScript AppUpdater使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了AppUpdater類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: validateDownload
export async function validateDownload(updater: AppUpdater, expectDownloadPromise = true) {
tuneNsisUpdater(updater)
const actualEvents = trackEvents(updater)
const updateCheckResult = await updater.checkForUpdates()
const assets = (updateCheckResult.updateInfo as any).assets
if (assets != null) {
for (const asset of assets) {
delete asset.download_count
}
}
expect(updateCheckResult.updateInfo).toMatchSnapshot()
if (expectDownloadPromise) {
expect(updateCheckResult.downloadPromise).toBeDefined()
const downloadResult = await updateCheckResult.downloadPromise
if (updater instanceof MacUpdater) {
expect(downloadResult).toEqual([])
}
else {
await assertThat(path.join((downloadResult)!![0])).isFile()
}
}
else {
expect(updateCheckResult.downloadPromise).toBeUndefined()
}
expect(actualEvents).toMatchSnapshot()
return updateCheckResult
}
示例2: trackEvents
export function trackEvents(updater: AppUpdater) {
const actualEvents: Array<string> = []
for (const eventName of ["checking-for-update", "update-available", "update-downloaded", "error"]) {
updater.addListener(eventName, () => {
actualEvents.push(eventName)
})
}
return actualEvents
}
示例3: validateDownload
export async function validateDownload(updater: AppUpdater, expectDownloadPromise = true) {
tuneNsisUpdater(updater)
const actualEvents = trackEvents(updater)
const updateCheckResult = await updater.checkForUpdates()
expect(updateCheckResult.fileInfo).toMatchSnapshot()
if (expectDownloadPromise) {
if (updater instanceof MacUpdater) {
expect(await updateCheckResult.downloadPromise).toEqual([])
}
else {
await assertThat(path.join((await updateCheckResult.downloadPromise)!![0])).isFile()
}
}
else {
expect(updateCheckResult.downloadPromise).toBeUndefined()
}
expect(actualEvents).toMatchSnapshot()
return updateCheckResult
}
示例4: bindUpdaterEvents
bindUpdaterEvents() {
this.autoUpdater.on('update-available', () => {
this.dialogService.showYesNoDialog({
title: 'Update verfĂźgbar',
message: 'Eine neue Version ist verfĂźgbar. Wollen Sie die Software jetzt aktualisieren?'
}).subscribe((dialogResult: IDialogResult) => {
if (dialogResult.result === DialogResult.YES) {
this.autoUpdater.downloadUpdate();
}
});
});
/* NOT WORKING YET, see https://github.com/electron-userland/electron-builder/issues/2521
this.autoUpdater.on('download-progress', (progressObj) => {
console.log(`${progressObj.transferred} of ${progressObj.total} bytes (${progressObj.percent}%, ${progressObj.bytesPerSecond} byte/s)`);
});
*/
this.autoUpdater.on('update-downloaded', (info) => {
this.dialogService.showYesNoDialog({
title: 'Update heruntergeladen',
message: 'Die aktuellste Version wurde heruntergeladen. Jetzt neu starten?'
}).subscribe((dialogResult: IDialogResult) => {
if (dialogResult.result === DialogResult.YES) {
this.autoUpdater.quitAndInstall();
} else {
// When installing the new downloaded version is delayed by the user, it should be installed when closing it the next time.
// Currently there's an issue with that when the app is intalled for "all users" (e.g. under C:/Program Files/<APP_NAME>).
// When it's installed only for current user, it works.
// See https://github.com/electron-userland/electron-builder/issues/2363
// An alternative could be to force the installation directly after download
// (=> remove confirm and just notify that app will be closed and update will be installed)
this.autoUpdater.autoInstallOnAppQuit = true;
}
});
});
}
示例5:
}).subscribe((dialogResult: IDialogResult) => {
if (dialogResult.result === DialogResult.YES) {
this.autoUpdater.quitAndInstall();
} else {
// When installing the new downloaded version is delayed by the user, it should be installed when closing it the next time.
// Currently there's an issue with that when the app is intalled for "all users" (e.g. under C:/Program Files/<APP_NAME>).
// When it's installed only for current user, it works.
// See https://github.com/electron-userland/electron-builder/issues/2363
// An alternative could be to force the installation directly after download
// (=> remove confirm and just notify that app will be closed and update will be installed)
this.autoUpdater.autoInstallOnAppQuit = true;
}
});
示例6: constructor
constructor(
private electronService: ElectronService,
private dialogService: DialogService
) {
// Conditional imports
if (this.electronService.isElectron()) {
// enable autoUpdater for production builds only
if (AppConfig.production) {
this.autoUpdater = this.electronService.remote.getGlobal('autoUpdater');
this.autoUpdater.autoDownload = false;
this.bindUpdaterEvents();
this.autoUpdater.checkForUpdates(); // TODO: re-check in certain intervals
}
}
}