Electron -系统对话框

615次阅读  |  发布于4年以前

对于任何应用程序来说,user-friendly都是非常重要的。因此,您不应该使用alert()调用创建对话框。Electron提供了一个很好的界面来完成创建对话框的任务。让我们看一看。

Electron提供了一个对话模块,我们可以使用它来显示本机系统对话框,用于打开和保存文件、报警等。

让我们直接看一个示例,创建一个应用程序来显示简单的文本文件。


用以下代码来创建一个新的main.js文件

const{app,BrowserWindow}=require('electron')

const url =require('url')

const path =require('path')

const{ipcMain}=require('electron')

let win

function createWindow(){

 win =newBrowserWindow({width:800, height:600})

 win.loadURL(url.format ({

 pathname: path.join(\_\_dirname,'index.html'),

 protocol:'file:',

 slashes:true

 }))

}

ipcMain.on('openFile',(event, path)=>{

 const{dialog}=require('electron')

 const fs =require('fs')

 dialog.showOpenDialog(function(fileNames){

 // fileNames is an array that containsall the selected

 if(fileNames ===undefined){

 console.log("No file selected");

 }else{

 readFile(fileNames\[0\]);

 }

 });

 function readFile(filepath){

 fs.readFile(filepath,'utf-8',(err, data)=>{

 if(err){

 alert("An error ocurred reading the file:"+ err.message)

 return

 }

 // handle the file content

 event.sender.send('fileData', data)

 })

 }

})

app.on('ready', createWindow)

当主进程从呈现程序进程接收到“openFile”消息时,该代码将弹出打开对话框。此消息将把文件内容重定向回呈现程序进程。现在,我们必须打印内容。


现在我们用以下代码创建一个新的index.html文件

<!DOCTYPE html>
<html>

 <head>

 <metacharset="UTF-8">

 <title>File read using system dialogs</title>

 </head>

 <body>

 <scripttype="text/javascript">

 const{ipcRenderer}= require('electron')

 ipcRenderer.send('openFile',()=>{

 console.log("Event sent.");

 })

 ipcRenderer.on('fileData',(event, data)=>{

 document.write(data)

 })

 </script>

 </body>

</html>

当我们运行程序, 将弹出一个如下截图所示的本地对话框−

一旦我们选择一个文件显示,其内容将显示在应用程序窗口−

这只是Electron提供的四个对话框之一。它们都有相似的用法。一旦你学会了如何使用showOpenDialog,你就可以使用任何其他的对话框。

具有相同功能的对话框是

本文翻译转载自www.tutorialspoint.com

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8