example.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. 'use strict';
  2. const _ = require('lodash');
  3. const Controller = require('ee-core').Controller;
  4. const {app, dialog, BrowserWindow, BrowserView, Notification, powerMonitor, screen, nativeTheme} = require('electron');
  5. /**
  6. * 示例控制器
  7. * @class
  8. */
  9. class ExampleController extends Controller {
  10. /**
  11. * 所有方法接收两个参数
  12. * args 前端传的参数
  13. * @param event - IpcMainEvent 文档:https://www.electronjs.org/docs/latest/api/structures/ipc-main-event
  14. */
  15. /**
  16. * test
  17. */
  18. async test (args) {
  19. let obj = {
  20. status:'ok'
  21. }
  22. // 调用egg的某个api
  23. // const result = await this.app.curlEgg('post', '/api/v1/example/test2', {name: 'gsx2'});
  24. // console.log('fffffffffff: ', result);
  25. //this.app.logger.info('ssssssssssssssssssss');
  26. return obj;
  27. }
  28. /**
  29. * hello
  30. */
  31. hello (args, event) {
  32. let newMsg = args + " +1";
  33. let reply = '';
  34. reply = '收到:' + args + ',返回:' + newMsg;
  35. // let channel = "example.socketMessageStop";
  36. // event.reply(`${channel}`, '另外的数据');
  37. return reply;
  38. }
  39. /**
  40. * 消息提示对话框
  41. */
  42. messageShow () {
  43. dialog.showMessageBoxSync({
  44. type: 'info', // "none", "info", "error", "question" 或者 "warning"
  45. title: '自定义标题-message',
  46. message: '自定义消息内容',
  47. detail: '其它的额外信息'
  48. })
  49. return '打开了消息框';
  50. }
  51. /**
  52. * 消息提示与确认对话框
  53. */
  54. messageShowConfirm () {
  55. const res = dialog.showMessageBoxSync({
  56. type: 'info',
  57. title: '自定义标题-message',
  58. message: '自定义消息内容',
  59. detail: '其它的额外信息',
  60. cancelId: 1, // 用于取消对话框的按钮的索引
  61. defaultId: 0, // 设置默认选中的按钮
  62. buttons: ['确认', '取消'], // 按钮及索引
  63. })
  64. let data = (res === 0) ? '点击确认按钮' : '点击取消按钮';
  65. return data;
  66. }
  67. /**
  68. * 选择目录
  69. */
  70. selectDir () {
  71. const filePaths = dialog.showOpenDialogSync({
  72. properties: ['openDirectory', 'createDirectory']
  73. });
  74. console.log('[example] [selectDir] filePaths:', filePaths);
  75. if (_.isEmpty(filePaths)) {
  76. return null
  77. }
  78. return filePaths[0];
  79. }
  80. }
  81. module.exports = ExampleController;