electron 调用谷歌浏览器打开点击的链接,如果没有谷歌浏览器那么用默认浏览器打开
时间: 2023-11-27 13:52:09 浏览: 46
可以使用 Node.js 中的 `shell` 模块来执行系统命令,达到打开浏览器的目的。具体步骤如下:
1. 安装 `opener` 模块,它可以在任何平台下打开网页。
```bash
npm install opener --save
```
2. 在 Electron 主进程中使用 `opener` 执行打开链接的命令。如果系统中有 Google Chrome 浏览器,则用 Chrome 打开链接;否则使用系统默认浏览器打开链接。
```javascript
const { shell } = require('electron');
const opener = require('opener');
// 在 Electron 主进程中
const openLink = (url) => {
if (shell.which('google-chrome')) {
// 如果系统中有 Google Chrome 浏览器,则使用 Chrome 打开链接
opener(`${url}`, { command: ['google-chrome'] });
} else {
// 否则,使用系统默认浏览器打开链接
shell.openExternal(`${url}`);
}
};
```
在渲染进程中,可以使用 `ipcRenderer` 将链接发送给主进程,然后在主进程中执行打开链接的函数。
```javascript
// 在 Electron 渲染进程中
const { ipcRenderer } = require('electron');
const openLink = (url) => {
ipcRenderer.send('open-link', url);
};
```
在主进程中监听 `open-link` 事件,然后调用打开链接的函数。
```javascript
// 在 Electron 主进程中
const { ipcMain } = require('electron');
ipcMain.on('open-link', (event, url) => {
if (shell.which('google-chrome')) {
// 如果系统中有 Google Chrome 浏览器,则使用 Chrome 打开链接
opener(`${url}`, { command: ['google-chrome'] });
} else {
// 否则,使用系统默认浏览器打开链接
shell.openExternal(`${url}`);
}
});
```