Index.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <div id="app-base-socket-ipc">
  3. <div class="one-block-1">
  4. <span>
  5. 1. 渲染进程与主进程IPC通信
  6. </span>
  7. </div>
  8. <div class="one-block-2">
  9. <a-list bordered>
  10. <a-input-search v-model="content" @search="helloHandle">
  11. <a-button slot="enterButton">
  12. send
  13. </a-button>
  14. </a-input-search>
  15. </a-list>
  16. </div>
  17. <div class="one-block-1">
  18. <span>
  19. 2. 主进程API执行网页函数
  20. </span>
  21. </div>
  22. <div class="one-block-2">
  23. <a-list bordered>
  24. <a-input-search v-model="content2" @search="executeJSHandle">
  25. <a-button slot="enterButton">
  26. send
  27. </a-button>
  28. </a-input-search>
  29. </a-list>
  30. </div>
  31. <div class="one-block-1">
  32. <span>
  33. 3. 长消息: 服务端持续向前端页面发消息
  34. </span>
  35. </div>
  36. <div class="one-block-2">
  37. <a-space>
  38. <a-button @click="socketMsgStart">开始</a-button>
  39. <a-button @click="socketMsgStop">结束</a-button>
  40. 结果:{{ socketMessageString }}
  41. </a-space>
  42. </div>
  43. </div>
  44. </template>
  45. <script>
  46. import { localApi } from '@/api/main'
  47. export default {
  48. data() {
  49. return {
  50. content: 'hello',
  51. content2: 'hello world',
  52. reply: '',
  53. socketMessageString: ''
  54. }
  55. },
  56. mounted () {
  57. this.init();
  58. },
  59. methods: {
  60. init () {
  61. const self = this;
  62. self.$ipc.on('example.socketMessageStart', (event, result) => {
  63. console.log('[ipcRenderer] [socketMsgStart] result:', result)
  64. self.socketMessageString = result;
  65. })
  66. self.$ipc.on('example.socketMessageStop', (event, result) => {
  67. console.log('[ipcRenderer] [socketMsgStop] result:', result)
  68. self.socketMessageString = result;
  69. })
  70. },
  71. helloHandle(value) {
  72. const self = this;
  73. this.$ipcCallMain('controller.example.hello', value).then(r => {
  74. self.$message.info(r);
  75. })
  76. },
  77. executeJSHandle(value) {
  78. localApi('executeJS', {str: value}).then(res => {
  79. if (res.code == 0) {
  80. console.log(res.data);
  81. }
  82. }).catch(err => {
  83. console.log('err:', err)
  84. })
  85. },
  86. socketMsgStart() {
  87. this.$ipc.send('example.socketMessageStart', '时间')
  88. },
  89. socketMsgStop() {
  90. this.$ipc.send('example.socketMessageStop', '')
  91. },
  92. }
  93. }
  94. </script>
  95. <style lang="less" scoped>
  96. #app-base-socket-ipc {
  97. padding: 0px 10px;
  98. text-align: left;
  99. width: 100%;
  100. .one-block-1 {
  101. font-size: 16px;
  102. padding-top: 10px;
  103. }
  104. .one-block-2 {
  105. padding-top: 10px;
  106. }
  107. }
  108. </style>