javascript 如何在ElectronJS中使用相同的自定义用户代理打开一个新窗口

jtjikinw  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(191)

正在ElectronJs中构建一个webview应用程序,正在使用自定义用户代理使用户与webApp交互。当用户单击具有**target="_blank”**属性的链接时,它将打开一个新的选项卡,而不使用自定义用户代理。
有什么主意吗?

qij5mzcb

qij5mzcb1#

target=_black将创建一个新的browserWindow对象,因此您可以使用webContents API跟踪此事件,并将自定义userAgent应用于此新的browserWindow对象。例如:
主窗口上需要此webContents事件

win.webContents.setWindowOpenHandler(({ url }) => {
   /* 
     Here you will allow the browserWindow creation and configure it
     look a bit of the documentation here https://www.electronjs.org/es/docs/latest/api/web-contents#contentssetwindowopenhandlerhandler
   */
}

此SetWindowOpenHandler事件将允许创建窗口,现在,通过事件did-create-window,您将获得新的BrowserWindow对象,并通过该引用,您将能够设置自定义userAgent

win.webContents.on('did-create-window', (childWindow) => {
  /*
     Here you can use childWindow to set the new user agent for example
     here documentation for did-create-window https://www.electronjs.org/es/docs/latest/api/web-contents#evento-did-create-window
  */
     childwindow.webContents.setUserAgent('your-custom-user-agent)

});

我希望这对你有帮助,再见!

相关问题