【Electron】桌面应用开发启动直接打开一个网址或者浏览器打开一个网址

【Electron】桌面应用开发启动时直接打开一个网址或者跳转浏览器打开一个网址

前一篇有写过 Electron 桌面应用开发快速入门到打包Windows应用程序

但是现在需要程序打开的时候直接打开一个链接,在程序的窗口打开或者直接跳转浏览器打开

一、启动时直接打开一个网址

index.js(有些人用的main.js)

javascript 复制代码
// Modules to control application life and create native browser window
const { app, BrowserWindow, Menu } = require('electron')
const path = require('node:path')
 
const gotTheLock = app.requestSingleInstanceLock()
 
const createWindow = () => {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 1000,
    height: 800,
    title: "测试项目",
    icon: path.join(__dirname, 'icon.ico'),
    webPreferences: {
      webSecurity: false
    }
  })
 
  //隐藏顶部菜单
  Menu.setApplicationMenu(null)
  //设置网站url ‌例如打开 百度 的链接
  mainWindow.loadURL("https://www.baidu.com/")
}
 
// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
if (!gotTheLock) {
  app.quit()
} else {
  app.whenReady().then(() => {
    createWindow()
 
    app.on('activate', () => {
      // 在 macOS 系统内, 如果没有已开启的应用窗口
      // 点击托盘图标时通常会重新创建一个新窗口
      if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
  })
}
 
// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态, 
// 直到用户使用 Cmd + Q 明确退出
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})

二、启动时跳转浏览器打开一个网址

index.js

javascript 复制代码
const { shell } = require('electron') // 引入 Electron 的 shell 模块

function openLink(url) {
  shell.openExternal(url) // 使用 openExternal 方法打开链接
}

// 调用函数,‌例如打开 百度 的链接
openLink('https://www.baidu.com/')

如果在打包的时候遇到各种诡异的报错,可以参考以下文章:
【Electron】桌面应用开发electron-builder打包报错问题处理

相关推荐
kyriewen6 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒6 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
山河木马7 小时前
矩阵专题2-怎么创建视图矩阵(uViewMatrix)
javascript·webgl·计算机图形学
小林攻城狮7 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦7 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer7 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队8 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY8 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程
远航_8 小时前
OpenSpec 完整详细介绍
前端·后端
召钱熏8 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端