electron拦截请求通过转发修改响应信息,实现自定义返回结果
实现原理:通过监听请求,拦截到我们要修改的请求接口,然后把响应重定向到我们提前准备好的服务就ok了。(至于为什么不能直接把响应信息给修改了,我尝试过。没解决。)
官网API连接:https://www.electronjs.org/docs/api/web-request#webrequestonheadersreceivedfilter-listener
const { session } = require('electron')
// 添加要过滤/拦截的地址
const filter = {
urls: ['**://*.biadu.com/*']
}
// 发送之前进行拦截,(可以修改响应头什么的)
/* session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => {
details.requestHeaders['User-Agent'] = 'MyAgent'
callback({ requestHeaders: details.requestHeaders })
});
*/
// 发送请求之前,我们把结果重定向到我们自己的服务。(然后返回的实际内容就是我们的服务返回的内容啦)
session.defaultSession.webRequest.onBeforeRequest(filter, (details, callback) => {
// 返回内容可以是 base64加密的文本。
callback({ redirectURL: `http://localhost:9000/` });
});
//=============================
// nodejs 创建一个服务(用其他服务器都可以的。)
require("http").createServer(function (req, res) {
const data = {
"IDENTITY_NUMBER_LOGIN_ALIAS": "身份证号登录",
"IS_CUSTOM_MENU_LOGO": "false"
};//text/plain是普通文本
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
res.end(JSON.stringify(data));
}).listen(duankou)
electron 如何加载解析 pdf 文件?三大方案解决问题
引用:https://newsn.net/say/electron-pdf.html
npm install electron-pdf-window --save
const { app } = require('electron')
const PDFWindow = require('electron-pdf-window')
app.on('ready', () => {
const win = new PDFWindow({
width: 800,
height: 600
})
win.loadURL('http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf')
})