#Electorn与服务器交互的几种实现方式
1.由ipcRender与ipcMain之间相互通信来实现。
2.由前端页面发送AJAX请求实现。
#你可能要注意的问题
这里有几个问题需要注意,首先是,在渲染页面如何引入electron。其次,在开发环境中,你发送的请求可能是省去了主机名,像这样/user/login的。但是在,后期打包成exe文件,这样的请求会报错。所以你最好使用完整的URL地址,并在服务端配置跨域资源共享http://ip:port/user/login。这是由于,开发的时候,你所用的是http协议,这当然没有问题。但是,当打包完成后用的是file协议。此时你发送的请求大概长这样file:///D://user//login,显然这样子当然是错误的。
在React中你可以这样引入electron:
const electron = window.require('electron');
const { ipcRenderer } = electron;
#ipcRender与ipcMain
在渲染页面中,设置监听事件:
ipcRenderer.send("SEARCH_GET_HOT_SONG");
ipcRenderer.once("SEARCH_SET_HOT_SONG",(res)=>{
//do something
});
在主进程中,(main.js)监听LOCAL_ADD_FILE事件,完成操作后广播LOCAL_SET_FILE。
ipcMain.on("SEARCH_GET_HOT_SONG",(e)=>{
http.get('http://localhost:8080/api/getHotSong',function(res){
res.setEncoding('utf8');
res.on('data',function(chunk){
e.sender.send("SEARCH_SET_HOT_SONG",chunk)
});
});
})
#Ajax请求
在React中,使用Axios可以很好的进行请求操作。你只需要跟着官方的文档一步一步来进行。这里就不在详谈。
本文介绍了Electron应用中与服务器交互的几种方法,包括通过ipcRender和ipcMain的通信,以及前端页面使用Ajax(如Axios)发送请求。特别提醒,开发中需要注意 Electron 渲染进程引用、请求URL完整性和跨域配置问题,以确保打包后的exe文件能正常工作。
999

被折叠的 条评论
为什么被折叠?



