【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打包报错问题处理

相关推荐
永远的个初学者30 分钟前
图片优化 上传图片压缩 npm包支持vue(react)框架开源插件 支持在线与本地
前端·vue.js·react.js
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ31 分钟前
npm i / npm install 卡死不动解决方法
前端·npm·node.js
Kratzdisteln34 分钟前
【Cursor _RubicsCube Diary 1】Node.js;npm;Vite
前端·npm·node.js
杰克尼1 小时前
vue_day04
前端·javascript·vue.js
明远湖之鱼1 小时前
浅入理解跨端渲染:从零实现 React DSL 跨端渲染机制
前端·react native·react.js
悟忧2 小时前
规避ProseMirror React渲染差异带来的BUG
前端
小皮虾2 小时前
小程序云开发有类似 uniCloud 云对象的方案吗?有的兄弟,有的!
前端·javascript·小程序·云开发
Android疑难杂症2 小时前
鸿蒙Notification Kit通知服务开发快速指南
android·前端·harmonyos
T___T2 小时前
全方位解释 JavaScript 执行机制(从底层到实战)
前端·面试
阳懿2 小时前
meta-llama-3-8B下载失败解决。
前端·javascript·html