繁体   English   中英

如何从协议链接接收 Electron 应用程序中的数据

How to receive data in Electron app from protocol link

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在制作一个游戏客户端,我拥有它,您可以在其中从浏览器启动游戏,例如“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>

package.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 个回复

此代码仅适用于 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];
}

可能有用的资源

2 如何从 Electron 应用程序在 Chrome 中打开链接?

我有一个电子应用程序可以为我打开不和谐链接,当它是一个节点 CLI 应用程序时,它在 Chrome 中打开了链接,但现在在带有 UI 的电子中,它在电子子窗口中打开了链接,这是我的代码片段正在使用: 有谁知道我将如何在 chrome/ 用户默认浏览器中打开它? ...

5 如何从链接属性接收数据

你能告诉我,如何从链接属性中获取数据? 示例: 我想从'target'属性中获取数据以发送到服务器。 ...

2019-05-09 04:14:15 1 21   jquery
6 如何从浏览器链接启动/关注 electron 应用程序?

我需要启动 electron 应用程序或从浏览器链接聚焦它(如果已经启动)。 我已经搜索并尝试了许多解决方案,但没有让它发挥作用,所以如果有人对此有任何经验,你能帮忙吗? 这是代码: 当我尝试使用此代码启动时,我将goTheLock值设为 false,但second-instance事件没有被触发 ...

7 如何发送/接收从 angularJS 到 electron 的消息

我有一个 web 应用程序,使用 PHP 和 agularjs 想要迁移到 electron 制作的应用程序。 现在我正在使用: 我阅读了很多与 ipcRenderer 相关的主题,但在这种情况下我找不到 angularJS 的工作示例。 这个我应该在 electron 中使用: 不确定我是否可以制 ...

9 如何从华为健康App接收数据?

我已经获得了 Health Kit 授权,但是每当我运行登录方法时,我都会收到未记录的错误代码 8002,并且当我运行授权或每当我尝试使用 Health Kit 读取任何数据(例如心率)时,我都会不断得到结果代码 4 表示与 Health App 的通信中断。 我该如何解决这个问题。 我提供代码 ...

10 Electron 应用程序如何从 Chrome 浏览器扩展程序发送和接收消息?

我想构建一个基于 Electron + Angular 的书签应用程序。 该应用程序将是本地桌面应用程序。 我想将 Chrome 书签与 Electron 桌面应用程序同步。 我已经实现了 chrome 书签解析,即导出然后导入,但是每当添加新书签时,我都希望它与桌面应用程序同步。 可以开发一个扩 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM