Electron中常用对话框-打开文件对话框保存文件对话框提示对话框

Posted badaoliumangqizhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Electron中常用对话框-打开文件对话框保存文件对话框提示对话框相关的知识,希望对你有一定的参考价值。

场景

html和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106413828

Electron怎样进行渲染进程调试和使用浏览器和VSCode进行调试:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106414541

在上面搭建好项目以及知道怎样进行调试后,那么Electron有哪些常用的对话框。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

打开文件对话框

首先在index.html中增加一个Button按钮,并添加id

<button id="openDialog">打开</button>

然后在js中,通过id获取按钮并设置其点击事件

var btnOpenDialog=document.getElementById(openDialog);
btnOpenDialog.onclick = OpenDialog;

这个对话框是从Electron的主线程上打开的。如果要使用渲染器进程中的对话框对象, 可以使用remote来获得

const {dialog} = require(electron).remote;

然后在上面的OpenDialog方法中

function OpenDialog()
{
    dialog.showOpenDialog({
        title: "请选择您喜欢的文件",
        buttonLabel: "走你",
        filters: [
            { name: Custom File Type, extensions: [js, html, json] },
          ]
    }).then(result => {
        console.log(result.canceled)
        console.log(result.filePaths)
      }).catch(err => {
        console.log(err)
      })
}

效果

技术图片

 

 

选择一个文件后查看控制台

技术图片

 

 

技术图片

showOpenDialog常用设置

属性:

title String (可选)
defaultPath String (可选)
buttonLabel String (可选) - 「确认」按钮的自定义标签, 当为空时, 将使用默认标签。
filters FileFilter[] (可选)

properties String[] (可选) -包含对话框应用的功能。支持以下值:
    openFile - 允许选择文件
    openDirectory - 允许选择文件夹
    multiSelections-允许多选。
    showHiddenFiles-显示对话框中的隐藏文件。

返回值:

canceled:Boolean 对话框是否取消

filePaths:文件路径

过滤文件选项:

指定一个文件类型数组,用于规定用户可见或可选的特定类型范围

{
  filters: [
    { name: Images, extensions: [jpg, png, gif] },
    { name: Movies, extensions: [mkv, avi, mp4] },
    { name: Custom File Type, extensions: [as] },
    { name: All Files, extensions: [*] }
  ]
}

 

 

保存文件对话框

首先在index.html中增加一个Button按钮,并添加id

<button id="saveDialog">保存</button>

然后在js中,通过id获取按钮并设置其点击事件

var btnSaveDialog=document.getElementById(saveDialog);
btnSaveDialog.onclick = SaveDialog;

这个对话框是从Electron的主线程上打开的。如果要使用渲染器进程中的对话框对象, 可以使用remote来获得

const {dialog} = require(electron).remote;

为了将内容存储到文件中,还要引入fs

const fs = require(fs);

然后在上面的SaveDialog 方法中

function SaveDialog()
{
   
    dialog.showSaveDialog({
        title: "请选择要保存的文件名",
        buttonLabel: "保存",
        filters: [
            { name: Custom File Type, extensions: [js, html, json] },
          ]
    }).then(result => {
        fs.writeFileSync(result.filePath, "公众号:霸道的程序猿");
        console.log(result)
      }).catch(err => {
        console.log(err)
      })
    
}

效果

技术图片

 

 

技术图片

点击确定后

技术图片

 

 

技术图片

就会将

 fs.writeFileSync(result.filePath, "公众号:霸道的程序猿");

这句代码中的后面的内容写入文件中。

打开写入后的js文件

技术图片

 技术图片

 

 

showSaveDialog常用设置

属性:

title String (可选)
defaultPath String (可选) - 默认情况下使用的绝对目录路径、绝对文件路径或文件名。
buttonLabel String (可选) - 「确认」按钮的自定义标签, 当为空时, 将使用默认标签。
filters FileFilter[] (可选)

properties String[] (可选) -包含对话框应用的功能。支持以下值:
    showHiddenFiles-显示对话框中的隐藏文件。

返回值:

canceled:Boolean 对话框是否取消

filePaths:文件路径

过滤文件选项:

指定一个文件类型数组,用于规定用户可见或可选的特定类型范围

{
  filters: [
    { name: Images, extensions: [jpg, png, gif] },
    { name: Movies, extensions: [mkv, avi, mp4] },
    { name: Custom File Type, extensions: [as] },
    { name: All Files, extensions: [*] }
  ]
}

 

提示对话框

首先在index.html中增加一个Button按钮,并添加id

<button id="showMessageDialog">弹出消息提示</button>

然后在js中,通过id获取按钮并设置其点击事件

var btnShowMessageDialog=document.getElementById(showMessageDialog);
btnShowMessageDialog.onclick = ShowMessageDialog;

这个对话框是从Electron的主线程上打开的。如果要使用渲染器进程中的对话框对象, 可以使用remote来获得

const {dialog} = require(electron).remote;

然后在上面的ShowMessageDialog方法中

function ShowMessageDialog()
{
    
    dialog.showMessageBox({
        type: warning,
        title: "您确定么?",
        message: "您真的想要删除这条数据么?",
        buttons: ["OK", "Cancel"]
    }).then(result => {
        console.log("您的选择:" , result.response);
        console.log(result)
      }).catch(err => {
        console.log(err)
      })
}

效果

技术图片

 

 

技术图片

点击确定和取消后查看输出

技术图片

 

 

技术图片

ShowMessageDialog常用设置

属性:

type

字符串(可选) -可以是"none","info","error","question"或"warning"。在Windows上,"question"显示与图标相同的图标"info",除非您使用该"icon"选项设置图标。在MacOS,既"warning"和"error"显示相同的警告图标。


buttons

字符串 - 按钮文本数组。在Windows上,一个空数组将导致一个标签为“OK”的按钮。


defaultId

整数(可选) - 按钮阵列中按钮的索引,当消息框打开时将默认选择该按钮。


title

字符串(可选) - 消息框的标题,某些平台不会显示它。


message

 字符串 - 消息框的内容。


detail

字符串(可选) - 消息的额外信息。


checkboxLabel

字符串(可选) - 如果提供,消息框将包含一个带给定标签的复选框。复选框状态只能在使用时检查callback。


checkboxChecked

布尔(可选) - 复选框的初始选中状态。false默认。


icon

NativeImage(可选)


cancelId

整数(可选) - 通过键用于取消对话框的按钮索引Esc。默认情况下,将其分配给第一个按钮,其中“取消”或“否”作为标签。如果没有这样的标签按钮,并且没有设置此选项,0则将用作返回值或回调响应。Windows上忽略此选项。

 

返回值:

response Number  - 被点击的按钮的索引
checkboxChecked布尔值 - checkboxLabel已设置复选框的选中状态。否则false。

以上是关于Electron中常用对话框-打开文件对话框保存文件对话框提示对话框的主要内容,如果未能解决你的问题,请参考以下文章

纯文本文档如何转换成excel工作表

Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

Electron常见问题 52 - Electron 屏蔽下载保存对话框弹窗

Electron开发:Electron 应用中的拖拽操作

Mac Catalyst - 保存文件的标准对话框