electron setWindowOpenWindow不是一个函数

vjhs03f7  于 2023-09-28  发布在  Electron
关注(0)|答案(1)|浏览(147)

我为我的web应用程序创建了一个电子应用程序,它使用SAML。我想允许显示saml窗口。
所以我使用了BrowserWindow.WebContents.setWindowOpenHandler函数。
我第一次尝试它,窗口对象正在用一个新的BrowserWindow示例化。那不管用。我在GitHub上发现了一个新方法,使用事件“web-contents-created”

//Erlaube SAML Authentifizierung, andere Seiten werden blockiert
app.on("web-contents-created", (createEvent, contents) => {
  contents.setWindowOpenHandler(({url}) => {
    if(url.startsWith("https://login.microsoftonline.com/")) {
      return {action: 'allow'};
    }
    else return {action: 'deny'};
  });
});

这也没什么,我总是得到相同的错误消息:

我使用TypeScript,它是有效的代码。我用的是Electron 17.1.2
有谁知道为什么和如何?

ar5n3qh5

ar5n3qh51#

你可以在主窗口中使用

mainWindow.webContents.setWindowOpenHandler(({ url }) => {
if (url.startsWith('https://www*')) {
  return {
    action: 'allow',
    overrideBrowserWindowOptions: {
      width: 624,
      height: 428,
    },
  };
} else {
  console.log("Blocked by 'setWindowOpenHandler'");
  return { action: 'deny' };
}

});

相关问题