代码之家  ›  专栏  ›  技术社区  ›  Fabio Marzocca

从远程web应用程序打开electron中的标准链接

  •  0
  • Fabio Marzocca  · 技术社区  · 7 年前

    我的第一个electron应用程序只是嵌入了一个远程网络应用程序:

    mainWindow.loadURL("http://<my-remote-web-app")
    

    这个web应用程序运行的是标准的JS和jQuery。当从浏览器运行并单击“帮助”链接时,它将在另一个页面上打开一个新窗口。现在,当我从electron dektop应用程序运行时,我需要有相同的行为,但我没有运气。我跑不了 shell

    1 回复  |  直到 7 年前
        1
  •  0
  •   Fabio Marzocca    7 年前

    我找到了解决办法。张贴在这里为任何其他人的需要。

    只需在预加载脚本中设置全局函数,以便web应用程序可以访问它。在主电子脚本(main.js或index.js)中:

    function createWindow () {
      // Create the browser window.
      mainWindow = new BrowserWindow({
        width: 800, 
        height: 600,
        webPreferences: {
            nodeIntegration: false,
            preload: path.join(__dirname, 'preload.js')
        }
      })
    

    创建预加载。包含以下内容的js脚本:

    const {shell} = require('electron')
    var _process = process;
    process.once('loaded', function() {
      global.goto_Link = function(linkurl){
            shell.openExternal(linkurl)
      }
    });
    

    现在可以调用全局函数:

    //
    goto_Link("https://www.google.com");
    //