区分前端代码运行环境
开发electron应用时, 我们通常希望将现有的前端代码直接打包发布成桌面应用, 但是web应用和桌面应用的样式和功能还是有些许区别, 因此我们需要在一些代码中区分运行环境。
javascript
function isElectron() {
// Renderer process
if (
typeof window !== 'undefined' &&
typeof window.process === 'object' &&
window.process.type === 'renderer'
) {
return true
}
// Main process
if (
typeof process !== 'undefined' &&
typeof process.versions === 'object' &&
!!process.versions.electron
) {
return true
}
// Detect the user agent when the `nodeIntegration` option is set to false
if (
typeof navigator === 'object' &&
typeof navigator.userAgent === 'string' &&
navigator.userAgent.indexOf('Electron') >= 0
) {
return true
}
return false
}