const { app, BrowserWindow, protocol } = require('electron')
const { session } = require('electron')
var path = require("path")
var gElementIconsWoff = `${__dirname}/dist/static/fonts/element-icons.535877f.woff`;
var gElementIconsTtf = `${__dirname}/dist/static/fonts/element-icons.732389d.ttf`;
function createWindow () {
// 创建浏览器窗口
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
webSecurity: false, // 允许跨域
allowRunningInsecureContent: false,
//preload: process.cwd() + '\\resources\\app\\loadog.js',
devTools: true
}
});
var url = `file://${__dirname}/dist/index.html`;
// 并且为你的应用加载index.html
// win.loadFile('index.html')
// win.loadURL('https://cn.bing.com/');
win.loadURL(url);
// 打开开发者工具
win.webContents.openDevTools()
}
app.on('ready', function () {
const webReqFilter = {
urls: ['*://*/*']
}
// protocol.interceptFileProtocol
session.defaultSession.webRequest.onBeforeRequest(webReqFilter, function(details, callback){
console.log('webRequest.onBeforeRequest', details);
// callback({ cancel: false, redirectURL: 'https://cn.bing.com/'});
callback({});
});
// Returns Boolean - Whether the protocol was successfully intercepted
protocol.interceptFileProtocol('file', function(request, callback, next){
// console.log('protocol.interceptFileProtocol', request);
// callback({ statusCode: 400, data: 'Host Not Allowed' });
// const url = request.url.substr(8);
// var fPath = `file://${__dirname}/dist/index.html`;
var fPath = request.url.substr(8); // 截取file:///之后的内容,也就是我们需要的
if(fPath.indexOf('element-icons') >= 0 && fPath.indexOf('.woff') >= 0) fPath = gElementIconsWoff;
if(fPath.indexOf('element-icons') >= 0 && fPath.indexOf('.ttf') >= 0) fPath = gElementIconsTtf;
fPath = path.normalize(fPath);
console.log('protocol.interceptFileProtocol', fPath)
callback({ path: fPath});
return true;
});
createWindow();
}