104 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html>
 | |
|   <head>
 | |
|     <meta charset="UTF-8" />
 | |
|     <title>Information Dialog</title>
 | |
|   </head>
 | |
| 
 | |
|   <body>
 | |
|     <div class="section-wrapper">
 | |
|       <h1>Use system dialogs</h1>
 | |
| 
 | |
|       <h3>
 | |
|         The <code>dialog</code> module in Electron allows you to use native
 | |
|         system dialogs for opening files or directories, saving a file or
 | |
|         displaying informational messages.
 | |
|       </h3>
 | |
| 
 | |
|       <p>
 | |
|         This is a main process module because this process is more efficient
 | |
|         with native utilities and it allows the call to happen without
 | |
|         interrupting the visible elements in your page's renderer process.
 | |
|       </p>
 | |
| 
 | |
|       <p>
 | |
|         Open the
 | |
|         <a href="https://electronjs.org/docs/api/dialog/">
 | |
|           full API documentation (opens in new window)
 | |
|         </a>
 | |
|         in your browser.
 | |
|       </p>
 | |
|     </div>
 | |
| 
 | |
|     <div>
 | |
|       <div>
 | |
|         <h2>Information Dialog</h2>
 | |
|         <div>
 | |
|           <div>
 | |
|             <button id="information-dialog">
 | |
|               View Demo
 | |
|             </button>
 | |
|             <span id="info-selection"></span>
 | |
|           </div>
 | |
|           <p>
 | |
|             In this demo, the <code>ipc</code> module is used to send a message
 | |
|             from the renderer process instructing the main process to launch the
 | |
|             information dialog. Options may be provided for responses which can
 | |
|             then be relayed back to the renderer process.
 | |
|           </p>
 | |
| 
 | |
|           <p>
 | |
|             Note: The <code>title</code> property is not displayed in macOS.
 | |
|           </p>
 | |
| 
 | |
|           <p>
 | |
|             An information dialog can contain an icon, your choice of buttons,
 | |
|             title and message.
 | |
|           </p>
 | |
|           <h5>Renderer Process</h5>
 | |
|           <pre>
 | |
|             <code>
 | |
| const {ipcRenderer} = require('electron')
 | |
| 
 | |
| const informationBtn = document.getElementById('information-dialog')
 | |
| 
 | |
| informationBtn.addEventListener('click', (event) => {
 | |
|   ipcRenderer.send('open-information-dialog')
 | |
| })
 | |
| 
 | |
| ipcRenderer.on('information-dialog-selection', (event, index) => {
 | |
|   let message = 'You selected '
 | |
|   if (index === 0) message += 'yes.'
 | |
|   else message += 'no.'
 | |
|   document.getElementById('info-selection').innerHTML = message
 | |
| })
 | |
|             </code>
 | |
|           </pre>
 | |
|           <h5>Main Process</h5>
 | |
|           <pre>
 | |
|             <code>
 | |
| const {ipcMain, dialog} = require('electron')
 | |
| 
 | |
| ipcMain.on('open-information-dialog', (event) => {
 | |
|   const options = {
 | |
|     type: 'info',
 | |
|     title: 'Information',
 | |
|     message: "This is an information dialog. Isn't it nice?",
 | |
|     buttons: ['Yes', 'No']
 | |
|   }
 | |
|   dialog.showMessageBox(options, (index) => {
 | |
|     event.sender.send('information-dialog-selection', index)
 | |
|   })
 | |
| })
 | |
|             </code>
 | |
|           </pre>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
| 
 | |
|     <script>
 | |
|       // You can also require other files to run in this process
 | |
|       require("./renderer.js");
 | |
|     </script>
 | |
|   </body>
 | |
| </html>
 | 
