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

相关推荐
Watermelo6173 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
m0_748248945 分钟前
HTML5系列(11)-- Web 无障碍开发指南
前端·html·html5
m0_7482356116 分钟前
从零开始学前端之HTML(三)
前端·html
一个处女座的程序猿O(∩_∩)O2 小时前
小型 Vue 项目,该不该用 Pinia 、Vuex呢?
前端·javascript·vue.js
hackeroink5 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者7 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-7 小时前
验证码机制
前端·后端
燃先生._.8 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
高山我梦口香糖9 小时前
[react]searchParams转普通对象
开发语言·前端·javascript