客户端开发(Electron)系统级API使用

简介: 客户端开发(Electron)系统级API使用

    Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。


系统对话框:


1. 调用系统API实现文件保存或读取前的选择功能:

1.png

    如上图所示的功能,我们在使用电脑时就经常会遇到,在Electron中我们可以通过调用dialog.showOpenDialogSync函数同步打开下面的对话框,选择文件后将返回一个已文件路径组成的数组。


示例:

    我们在App.vue中新增了一个openFIle函数,设置了默认的左上角标题,默认打开的文件路径,确认按钮文案和文件类型的过滤:

openFile () {
  const { dialog, app } = remote
  const win = remote.getCurrentWindow()
  const filePath = dialog.showOpenDialogSync(win, {
    title: '请选择一张图片',
    defaultPath: app.getPath('pictures'),
    buttonLabel: '就它了',
    filters: [
      { name: 'PNG', extensions: ['png'] },
      { name: 'JPG', extensions: ['jpg'] }
    ]
  })
  console.log('[ filePath ] >', filePath)
}
复制代码
  • Options参数均为可选,常见的API说明如下:
参数名 - 作用
title - 对话框窗口的标题
defaultPath - 对话框的默认展示路径
buttonLabel - 「确认」按钮的自定义标签
filters - 文件类型过滤
properties openFile 允许选择文件
openDirectory 允许选择文件夹
multiSelections 允许多选
showHiddenFiles 显示对话框中的隐藏文件
  • Electron给我们提供关于对话框的API如下:
API名称 主要参数
showOpenDialogSync [browserWindow, ]options
showOpenDialog [browserWindow, ]options
showSaveDialogSync [browserWindow, ]options
showSaveDialog [browserWindow, ]options
showMessageBoxSync [browserWindow, ]options
showMessageBox [browserWindow, ]options
showErrorBox title, content
showCertificateTrustDialog [browserWindow, ]options


2. 特殊对话框(关于面板):

2.png

如上图就是我们设置过后的特殊对话框关于面板,通常显示当前客户端应用的信息。


示例:

API为app内用来配置面板的setAboutPanelOptions和用来随时显示面板的showAboutPanel:

const { app } = remote
app.setAboutPanelOptions({
  applicationName: app.getName(),
  applicationVersion: app.getVersion(),
  copyright: '©2022 小鑫同学'
})
// 通过调用此API可以随时打开
app.showAboutPanel()
复制代码


菜单配置:


1. 菜单栏菜单:

     Electron提供的默认菜单栏中的菜单都是一些为了演示和开发使用的,在实际的应用中我们还是需要进行配置来实现我们自己的功能。菜单栏自动隐藏,应用启动后默认隐藏,当按下ALT件后显示原菜单栏:


const win = new BrowserWindow({
    autoHideMenuBar: true,
})
复制代码
  • 通过Electron提供的Menu模块来覆盖默认菜单:

菜单的配置提供label配置菜单名称,role配置默认功能(undo、redo、cut、copy、delete、selectAll、reload、minimize、close、quit),配置自定义click实现特殊的功能,其他API可参考官网。

const { Menu } = remote
  Menu.setApplicationMenu(
    Menu.buildFromTemplate([
      {
        label: '文件',
        submenu: [{ label: '新建文件' }, { label: '新建窗口' }]
      },
      { label: '编辑' },
      { label: '选择' },
      { label: '查看' }
    ])
)
复制代码


替换前后的效果对比:

3.png

4.png


2. 系统右键菜单:

通过覆盖oncontextmenu来实现弹出定义的菜单想:

const menus = [
  {
    label: '文件',
    submenu: [{ label: '新建文件' }, { label: '新建窗口' }]
  },
  { label: '编辑' },
  { label: '选择' },
  { label: '查看' }
]
const { Menu } = remote
const menuCtx = Menu.buildFromTemplate(menus)
window.oncontextmenu = function (e) {
  e.preventDefault()
  menuCtx.popup()
}
win.on('blur', () => {
  menuCtx.hide()
})
复制代码


总结:


    利用系统提供的对话框API可以实现更加灵活的配置来增加用户的实际体验,菜单配置也是每个桌面应用必不可少的一块,目前只是初次演示API的使用,实际开发时还是要多查查官网API。



相关文章
|
1天前
|
监控 供应链 搜索推荐
阿里妈妈商品详情API接口:开发、应用与收益的深度剖析
阿里妈妈是阿里巴巴旗下的数字营销平台,其商品详情API接口为开发者提供了获取淘宝、天猫等电商平台商品详细信息的工具。本文介绍了该接口的开发流程、应用场景及带来的收益,揭示了其在电商生态中的重要地位。
18 6
|
1天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
18 6
|
3天前
|
监控 搜索推荐 API
京东商品详情API接口的开发、应用与收益探索
在数字化和互联网高速发展的时代,京东通过开放商品详情API接口,为开发者、企业和商家提供了丰富的数据源和创新空间。本文将探讨该API接口的开发背景、流程、应用场景及带来的多重收益,包括促进生态系统建设、提升数据利用效率和推动数字化转型等。
17 3
|
8天前
|
供应链 搜索推荐 API
探索1688榜单商品详细信息API接口:开发、应用与收益
本文深入探讨了1688榜单商品详细信息API接口的开发与应用,涵盖接口概述、开发条件、调用方法及数据处理等内容。该API帮助企业高效获取1688平台商品信息,应用于商品信息采集、校验、同步与数据分析等领域,有效提升了企业的运营效率、库存管理、销售转化率及市场策略制定能力,降低了采购成本,提升了客户满意度。
35 9
|
11天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
44 10
|
11天前
|
存储 API 数据库
使用Python开发获取商品销量详情API接口
本文介绍了使用Python开发获取商品销量详情的API接口方法,涵盖API接口概述、技术选型(Flask与FastAPI)、环境准备、API接口创建及调用淘宝开放平台API等内容。通过示例代码,详细说明了如何构建和调用API,以及开发过程中需要注意的事项,如数据库连接、API权限、错误处理、安全性和性能优化等。
57 5
|
10天前
|
数据可视化 搜索推荐 API
速卖通获得aliexpress商品详情API接口的开发、应用与收益。
速卖通(AliExpress)作为阿里巴巴旗下的跨境电商平台,为全球消费者提供丰富商品。其开放平台提供的API接口支持开发者获取商品详情等信息,本文探讨了速卖通商品详情API的开发流程、应用场景及潜在收益,包括提高运营效率、降低成本、增加收入和提升竞争力等方面。
27 1
|
24天前
|
JSON API 数据格式
探索后端开发:从零构建简易RESTful API
在数字时代的浪潮中,后端开发如同搭建一座桥梁,连接着用户界面与数据世界。本文将引导读者步入后端开发的殿堂,通过构建一个简易的RESTful API,揭示其背后的逻辑与魅力。我们将从基础概念出发,逐步深入到实际操作,不仅分享代码示例,更探讨如何思考和解决问题,让每一位读者都能在后端开发的道路上迈出坚实的一步。
|
22天前
|
安全 测试技术 API
构建高效RESTful API:后端开发的艺术与实践####
在现代软件开发的浩瀚星空中,RESTful API如同一座桥梁,连接着前端世界的绚丽多彩与后端逻辑的深邃复杂。本文旨在探讨如何精心打造一款既高效又易于维护的RESTful API,通过深入浅出的方式,剖析其设计原则、实现技巧及最佳实践,为后端开发者提供一份实用的指南。我们不深入晦涩的理论,只聚焦于那些能够即刻提升API品质与开发效率的关键点,让你的API在众多服务中脱颖而出。 ####
30 0
|
23天前
|
JSON API 数据格式
如何使用Python开发天猫获得淘宝买家秀API接口?
本文介绍了如何使用Python开发天猫和淘宝买家秀API接口,包括注册开放平台账号、创建应用获取API权限、构建请求URL、发送请求获取响应及解析数据等步骤,帮助开发者高效获取和处理商品信息与用户评价数据。
25 0