【问题标题】:How to detect if a web app is running in Electron如何检测 Web 应用程序是否在 Electron 中运行
【发布时间】:2021-06-01 18:59:28
【问题描述】:

我正在尝试在电子应用程序上提供真正的反应应用程序。这并不意味着我正在开发带有反应的电子应用程序。我创建了一个反应应用程序并将其注入到电子应用程序中。 (和 slack 一样,它可以作为 Web 应用程序和桌面应用程序。)但我对发送桌面通知感到困惑。

现在主要的问题是: 如何获取应用程序类型。我的意思是,用户是在网络上还是在桌面上使用我的应用程序。我怎样才能得到这个?

谢谢你:)

【问题讨论】:

  • 方法有很多,可以使用User-Agent,也可以在调用loadURL时设置值
  • 啊啊啊,有道理!!你可以添加一个答案吗?我想接受它。谢谢顺便说一句:)

标签: reactjs web electron desktop-application


【解决方案1】:

有很多方法可以检测您是否在桌面环境中运行。

您可以在调用loadURL 时检查User-Agent 并在Electron 中设置userAgent 的值。

另一种方法是使用preload 脚本声明一个全局变量。

// main process
new BrowserWindow({
  webPreferences: {
    preload: "preload.js",
  },
});

// preload.js 
// you don't need to use contextBridge if contextIsolation is false
// but it's true by default in Electron 12
const { contextBridge } = require("electron"); 
contextBridge.exposeInMainWorld("IN_DESKTOP_ENV", true);

// renderer process (your React world)
if (globalThis.IN_DESKTOP_ENV) {
  // do something...
}

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 2020-01-16
    • 2017-09-28
    • 2012-08-18
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多