electron 电子应用程序-如何在浏览器中打开链接?

vjrehmav  于 2022-12-08  发布在  Electron
关注(0)|答案(1)|浏览(298)

我试图在一个新的浏览器窗口中打开一个链接使用电子应用程序。

const test = () => {
  const shell = window.require('electron').shell;
  shell.openExternal("https://google.com");
}

当我这样做时,得到错误"window.require is not a function"
我当然对此进行了研究,并找到了几个“修复”,但没有一个对我有效。我将我的webpack.config.js编辑为:

module.exports = {
    configureWebpack: {
      externals: {
        './cptable': 'var cptable'
      },
      resolve: {
        fallback: {
          'fs': false,
          'crypto': false,
          'path': false,
        }
      }
    },
  }

我还确保启用了nodeIntegration,如下所示:

const mainWindow = new BrowserWindow({
        width: 1280,
        height: 720,
        webPreferences: {
          nodeIntegration: true
        },
        autoHideMenuBar: true,
        resizable: false,
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    })
    ```

still no success. any idea?
yeotifhr

yeotifhr1#

renderer.js -从渲染器发送请求。

const response = await window.electronAPI.openLinkPlease()

preload.js -您有一个中间件,您的请求将在其中接收并发送到electronic。

process.once("loaded", () => {
  contextBridge.exposeInMainWorld('electronAPI', {
      openLinkPlease: () => ipcRenderer.invoke('openLinkPlease'),
  })
});

js-在这里你会得到你的请求打开和电子将打开这个网址在您的默认浏览器。首先添加在最开始的const {shell} = require("electron");,以增加 shell 功能,然后

preload: path.join(__dirname, 'preload.js'),
    },
});

加了

ipcMain.handle('openLinkPlease', () => {
    shell.openExternal("https://google.com");
})

这是我的应用程序x1c 0d1x的屏幕工作方式

相关问题