如何解决如何检测 Web 应用程序是否在 Electron 中运行
我正在尝试在电子应用程序上提供真正的 React 应用程序。这并不意味着我正在开发带有反应的电子应用程序。我创建了一个反应应用程序并将其注入到电子应用程序中。 (与 slack 一样,它将充当 Web 应用程序和桌面应用程序。)但我对发送桌面通知感到困惑。
现在的主要问题是: 如何获取应用程序类型。我的意思是,用户是在网络上还是在桌面上使用我的应用程序。我怎样才能得到这个?
谢谢:)
解决方法
有很多方法可以检测您是否在桌面环境中运行。
您可以检查 User-Agent 并且您可以在调用 loadURL 时在 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...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。