nx-browser
Version:
tel13520521413
131 lines • 5.15 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.electron = void 0;
const electron_1 = __importStar(require("electron"));
const cache = {
routerCache: {}
};
const nx_browser = (browserOption = {}, cacheKey) => new Promise((ok) => {
if (!electron_1.app.isPackaged) {
browserOption.x = 3000;
browserOption.y = 0;
}
let browserObj;
const newBrowser = () => new electron_1.BrowserWindow(Object.assign({ minimizable: false, maximizable: false }, browserOption));
if (cacheKey && cache.routerCache[cacheKey]) {
browserObj = cache.routerCache[cacheKey];
}
else if (cacheKey) {
browserObj = cache.routerCache[cacheKey] = newBrowser();
}
else {
browserObj = newBrowser();
}
if (!electron_1.app.isPackaged) {
browserObj.webContents.openDevTools();
}
const webContents = browserObj.webContents;
const res = {
browserObj,
webContents,
lockTitle() {
browserObj.on('page-title-updated', (e) => e.preventDefault());
webContents.on('page-title-updated', (e) => e.preventDefault());
},
lockWin() {
webContents.on("new-window", (e, u) => {
e.preventDefault();
webContents.loadURL(u);
});
webContents.on("will-navigate", (e, u) => {
e.preventDefault();
webContents.loadURL(u);
});
},
createChildBrowser(option) {
return nx_browser(Object.assign(Object.assign({}, option), { parent: browserObj }));
}
};
ok(res);
});
exports.electron = Object.assign(Object.assign({}, electron_1.default), { nx_appUpdata(url) {
return new Promise((ok) => {
electron_1.autoUpdater.setFeedURL({ url });
setInterval(() => {
electron_1.autoUpdater.checkForUpdates();
}, 600000);
electron_1.autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => {
const dialogOpts = {
type: 'info',
buttons: ['现在更新', '以后再说'],
title: '应用有更新',
message: releaseNotes + releaseName,
detail: 'A new version has been downloaded. Restart the application to apply the updates.'
};
electron_1.dialog.showMessageBox(dialogOpts).then((returnValue) => {
if (returnValue.response === 0)
electron_1.autoUpdater.quitAndInstall();
});
});
electron_1.autoUpdater.on('error', message => {
const c = new electron_1.Notification({
title: '出现错误',
body: '老师电话:xxxxxxxxxx'
});
c.show();
c.closeButtonText = '确定';
c.on('click', () => c.close());
});
ok();
});
}, nx_appexit: () => {
electron_1.BrowserWindow.getAllWindows().forEach(v => v.close());
electron_1.app.quit();
electron_1.app.exit(0);
}, nx_init: {
setAppUserModelId: electron_1.app.setAppUserModelId,
tray: (icon) => new Promise(ok => {
cache.trayicon = icon;
cache.tray = new electron_1.Tray(icon);
ok(cache.tray);
})
}, nx_tray: () => new Promise((ok, err) => {
return cache.tray ? ok(cache.tray) : err('please run nx_init.tray');
}), nx_tips(title, body, icon) {
return new Promise((ok) => {
if (typeof body === 'object') {
body = body.toString();
}
if (icon) {
cache.tipicon = icon;
}
const tip = new electron_1.Notification({
title,
body: body,
timeoutType: 'default',
icon: cache['tipicon'],
});
tip.show();
ok(tip);
});
}, nx_browser });
//# sourceMappingURL=index.js.map