将电子原点设置为域

Set Electron origin to domain

我正在构建一个 Electron 应用程序 (electron builder),在部署时,如果我查看开发工具,它只会在顶部显示 app:// 并且在发送任何 http(s) 请求时,源是 app ://.

我感觉这是一些 cookie 未设置和 CORS 问题的原因,我一直都遇到过。

在 background.js 的 createWindow 函数中,他们的一个部分在生产中运行,默认为:

createProtocol('app')
win.loadURL('app://./index.html')

将其设置为我的域并构建只给出一个空白 window,开发控制台显示 chrome-error://chromewebdata

chrome-error when setting what I assumed to be the origin

将此与 Discord 进行比较,开发工具中的顶部栏显示 Discord 网站以及所有请求都来自 Discord.com Discord dev tool header 这让我觉得这是应用级别而不仅仅是 http 请求级别 (axios/fetch)

关于如何更改原点的任何想法

在对创建深层链接做了一些研究之后,我发现我基本上需要我自己的协议来完成它(真的很有意义)。

因此查看了 Vue CLI Electron Builder 的文档并查看了配置部分 (https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/configuration.html#changing-the-file-loading-protocol)

当 electron:build 为 运行 时,它会从 vue.config.js 中提取选项。添加:

module.exports = {
  pluginOptions: {
    electronBuilder: {
       customFileProtocol: 'myCustomProtocol://./'

    }
  }
}

然后还更新 background.js 中的 win.loadURL('myCustomProtocol://./index.html') 将自定义协议分配给应用程序(所有这些都在上面链接的文档中)