1 回答

TA贡献1946条经验 获得超3个赞
您可以通过拦截文件协议处理程序来完成此操作。如果您已将文件映射设置为如下对象:
files = {
"file1.js": "/path/to/file1.js",
"file2.js": "/path/to/file2.js",
// etc.
}
然后在 createWindow 函数中,您将在实例化新的 BrowserWindow 后立即插入此代码:
protocol.interceptFileProtocol("file", (req, cb) => {
var file = req.url.split("/")
file = file[file.length-1]
if (files[file]) {
console.log(`intercepting ${file} => ${files[file]}`)
cb({path:files[file]})
}
})
注意:您从需要电子中获得的protocol参考资料const,例如:
const {app, BrowserWindow, protocol} = require("electron")
此代码假定文件名是唯一的,并且是路径中唯一重要的部分。因此,例如,无论代码认为“file1.js”位于什么路径,在上面的示例中它将被重定向到/path/to/file1.js. 如果请求的文件不存在,则行为未定义,可能不会加载任何内容。
添加回答
举报