我正在制作一个游戏客户端,我有它,您可以在其中从浏览器启动游戏,例如“mygame://whatever”。 我正在做一些调试,我希望它显示“收到此数据:随便”。 它确实启动了应用程序,但它只是在数据框中显示未定义。 我该如何解决?

主要.js:

const {app, BrowserWindow} = require('electron');

let mainWindow;

function createWindow () {
  mainWindow = new BrowserWindow({
    width: 800, 
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })
  mainWindow.loadFile('index.html');
}

app.on('ready', createWindow);

var link;

app.on('open-url', function (event, data) {
  event.preventDefault();
  link = data;
});

app.setAsDefaultProtocolClient('mygame');

// Export so you can access it from the renderer thread
module.exports.getLink = () => link;

索引.html:

<!DOCTYPE html>
<html>
  <body>
    <p>Received this data <input id="data"></p>
    <script>
      const {getLink} = require('electron').remote.require('./main.js');
      document.querySelector('#data').value = getLink();
    </script>
  </body>
</html>

包.json:

{
  "name": "mygame",
  "version": "1.0.0-dev",
  "description": "Development copy.",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "dist": "electron-builder"
  },
  "author": "Me",
  "build": {
    "protocols": {
      "name": "mygame-protocol",
      "schemes": [
        "mygame"
      ]
    }
  },
  "devDependencies": {
    "electron": "^6.0.9",
    "electron-builder": "^21.2.0"
  }
}

感谢所有帮助!

#1楼 票数:1

此代码仅适用于 iOS

app.on('open-url', function (event, data) {
    event.preventDefault();
    link = data;
});

在 win32 中,您必须使用该代码

process.argv[1]

所以你可以像这样在 createWindow() 中添加该代码:

function createWindow () {
    // Crea la finestra del browser
    let win = new BrowserWindow({
        width: 800,
        height: 600,
    });

    //other stuff

    link = process.argv[1];
}

可能有用的资源

  ask by SirValex translate from so

未解决问题?本站智能推荐:

3回复

将jQuery集成到电子应用程序中

我正在尝试向用电子编写的桌面应用程序添加 jquery 功能使用电子快速启动存储库,我将下载的 jquery 文件添加到main.html文件中,如下所示: 左右: 然后在index.js文件中,我在createWindow函数中添加代码,因为这似乎是正确的地方,但老实说,我尝试的任何地方或多或少都
1回复

alert(__dirname)在电子应用程序中不产生任何输出

运行以下电子应用程序时,我没有得到所需的输出,即包含 pwd 作为输出的警报框。 但是, index.html 中的注释行似乎工作正常。 铬窗口的开发人员控制台显示“未捕获的引用错误:__dirname 未在 HTMLButtonElement.<anonymous> 处定义”。 这段代
1回复

无法修改电子应用程序中的应用程序菜单

我知道它有效,我几周前才做的,但现在当我尝试这样做时它会这样说。 并将其放入另一个名为 menu.js 的文件中。 [日志] [第 36 行]
1回复

如何修复电子应用程序中的“SE50Pisundefined”错误?

我正在使用Electron制作以下应用程序,并且在测试时出现错误,指出SE50P is undefined实际上是SE50P is undefined ! 我已经尝试搜索Google并尝试进行代码更改,但是它似乎并没有解决错误,因此我来到Stack Overflow寻找可以帮助我的人! 错
2回复

Javascript允许textarea中的特殊字符(电子应用程序)

我正在制作一个具有<textarea>的电子应用程序。 我正在使用document.execCommand('insertText', false, text); 将文本插入文本区域。 我想插入以下字符串'ⓐ'但是当我这样做时,我的文本区域显示以下内容:'â“'。 如何使用documen
1回复

电子没有完全在应用程序中更新已编辑的index.html

我刚刚开始学习电子,并且作为一个入门者,我克隆了这个简单的电子教程应用程序,以查看其工作原理。(一切都可以在官方电子入门应用程序中正常运行)。 使用的git repo: https : //github.com/crilleengvall/electron-tutorial-app 我不
1回复

为什么不能在构建的电子应用程序中读取package.json?

你好 Stackoverflow 用户! 我正在尝试将电子应用程序的所有配置放在 package.json 文件中。 这是我的代码片段: 索引.jsconst { app, BrowserWindow, ipcMain } = require('electron');const fs = requi
1回复

使用html按钮关闭电子应用程序

我有一个问题,我正在制作一个电子应用程序,我想让它让用户点击我的 index.html 中的一个按钮,然后应用程序关闭。 我试过了,但似乎没有任何效果.. 任何人的想法? 抱歉英语不好。 我来自荷兰 BeldrNL 这是 html 中按钮的图像,它用荷兰语显示“关闭”。 我想要它以便用户按下该按钮