Files
electron-egg/electron/library/awaken.js
gaoshuaixing 1f22d648f2 2.0.1
2022-02-24 18:40:47 +08:00

57 lines
1.3 KiB
JavaScript

'use strict';
const { app } = require('electron');
/**
* 应用唤醒模块
*/
module.exports = {
/**
* 安装
*/
install (eeApp) {
eeApp.logger.info('[preload] load awaken module');
const protocolInfo = eeApp.config.awakeProtocol;
const PROTOCOL = protocolInfo.protocol;
app.setAsDefaultProtocolClient(PROTOCOL);
handleArgv(process.argv);
app.on('second-instance', (event, argv) => {
if (process.platform === 'win32') {
handleArgv(argv)
}
})
// 仅用于macOS
app.on('open-url', (event, urlStr) => {
handleUrl(urlStr)
})
// 参数处理
function handleArgv(argv) {
const offset = app.isPackaged ? 1 : 2;
const url = argv.find((arg, i) => i >= offset && arg.startsWith(PROTOCOL));
handleUrl(url)
}
// url解析
function handleUrl(awakeUrlStr) {
if (!awakeUrlStr || awakeUrlStr.length === 0) {
return
}
const {hostname, pathname, search} = new URL(awakeUrlStr);
let awakeUrlInfo = {
urlStr: awakeUrlStr,
urlHost: hostname,
urlPath: pathname,
urlParams: search && search.slice(1)
}
eeApp.logger.info('[awaken] [handleUrl] awakeUrlInfo:', awakeUrlInfo);
}
}
}