Questions tagged «electron»

Electron(以前称为Atom Shell)是GitHub创建的框架,可让您使用HTML,CSS和JavaScript编写跨平台的桌面应用程序。Electron基于Node.js和Chromium。

2
使用Electron(Atom Shell)时,客户机/服务器模型是什么?
我试图围绕Electron(以前称为Atom Shell)的工作原理进行研究。 我来自一个传统的MVC风格的Web应用程序,在该应用程序中,浏览器通过路由系统调用Controller动作,然后Controller从商店(文件系统,数据库等)获取数据并呈现View,它被发送回浏览器。某些操作可能会发回JSON,因为它们是通过JavaScript / AJAX调用的,而不是通过浏览器实际导航到它们。 我想创建一个,但是作为一个跨平台的桌面应用程序。我知道Atom Shell将Chromium-Browser和Node.js / v8运行时结合在一起,但是我不确定它们如何通信。 我想我可以在Web服务器上运行一个完整的服务器(基本上是一些Express。这样的Node.js HTTP中间件),但这会创建一个可访问网络的服务器(它也可能使防火墙跳闸)-我想要制作台式机的原因之一应用程序正是为了避免运行真实的服务器。基本上就像“普通”桌面应用程序中的MVP / MVVM模式。 有人可以给我一些我想做的起点吗?浏览器将如何与节点运行时进行对话(称为“客户端”?),以告诉它“嘿,获取ID为12345的记录”,客户端将返回呈现的HTML,还是浏览器只会得到一个Blob JSON返回并通过JavaScript模板引擎呈现它?


1
如何从C ++插件中的'MediaStream'对象读取音频数据
经过流血和眼泪,我终于设法建立了一个Node C ++附加组件,并将一个Web平台标准MediaStream对象永久地推入其C ++方法之一。为了在不同的V8和Node.js版本之间实现兼容性,我将原生抽象用于Node.js(nan): 插件 NAN_METHOD(SetStream) { Nan::HandleScope scope; v8::Local<v8::Object> mediaStream = info[0]->ToObject(); } addon.js setStream(new MediaStream()); 对于它的价值,它可以正常工作(即,它不会消除渲染器进程的视线),并且我可以验证MediaStream对象的存在,例如,通过从C ++方法返回其构造函数名称: 插件 info.GetReturnValue().Set(mediaStream->GetConstructorName()); 当从JavaScript通过调用时setStream,这将返回字符串MediaStream,因此该对象肯定在那里。我还可以返回mediaStream对象本身,并且一切都会正常运行,因此确实是我需要的对象。 那么,我将如何MediaStream在C ++中从此对象读取音频数据(即音频样本)?附带说明一下,实际的数据读取(和处理)将在单独的中完成std::thread。 赏金更新 我知道,如果我自己编译Electron和/或Chromium,这样做会更容易/可行,但我不想参与该维护工作。 我想知道是否可以不这样做,就我的研究而言,我深信我需要两件事来完成此任务: 相关的头文件,我相信会公开应该足够了 铬/闪烁库文件(?),用于解析外部符号,类似于node.dylib文件 而且,正如我所说,我相信自己可以自己编译Chrome / blink,然后获得这个lib文件,但这将为Electron带来麻烦。考虑到这一点,我相信这个问题最终可以归结为C ++链接问题。还有其他方法可以做我想要的吗? 编辑 在我的案例中,ScriptProcessorNode不是一个选择,因为它的性能使其在生产中几乎无法使用。这将需要在ui / main线程上处理音频样本,这绝对是疯狂的。 编辑2 AudioWorklets在Electron中已经存在了一段时间,与ScriptProcessorNode(或更糟糕的是,AnalyzerNode)不同,具有低延迟并且对于实时C ++支持的音频处理来说非常可靠。 在我的应用程序(AudioNodes)中,我已经为实验性的VST插件主机原型(很可能是第一个Web Audio API)实现了这种方法。 如果有人想继续写一个基于AudioWorklet的答案,我会很乐意接受,但要提防:这是一个非常先进的领域,而且洞洞很深,即使在非常简单,通用的应用程序之前也要克服无数障碍传递原型(特别是因为当前在Electron中需要原子同步的缓冲跨线程音频处理才能实现此目的,因为https://github.com/electron/electron/issues/22503-尽管获取本机将C ++插件添加到一个音频渲染器线程(更不用说同时使用多个线程)可能同样具有挑战性。
70 javascript  c++  electron  v8  blink 

2
NPM运行*不执行任何操作
我正在运行一个Electron项目,一切都很好。但是现在,当我运行package.json中的任何脚本(包括npm start)时,它只是转义了一行而没有执行任何操作。 我的package.json: { "name": "interclip-desktop", "version": "0.0.7", "description": "Interclip for desktop", "repository": "https://github.com/aperta-principium/Interclip-desktop", "main": "main.js", "scripts": { "start": "electron .", "package-mac": "electron-packager . --overwrite --asar=true --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds", "package-win": "electron-packager . Interclip --overwrite --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Interclip\"", "package-linux": "electron-packager . Interclip --overwrite --asar=true …

2
公证电子应用程序抛出-“您必须首先在线签署相关合同。(1048)”错误
我正在尝试对电子应用程序进行公证以使其在macOS Catalina上运行。打包成功,但是xcrun altool命令抛出“您必须首先在线签署相关合同。(1048)”错误。 电子应用程序package.json的内容: "mac": { "entitlements": "./build/entitlements.mac.inherit.plist", "hardenedRuntime": true, "type": "distribution", "category": "public.app-category.productivity", "icon": "build/icon.icns", "target": [ "dmg", "zip" ] }, "dmg": { "sign": false, entitlements.mac.inherit.plist文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.application-identifier</key> <string><app.bundle.name></string> <key>com.apple.developer.team-identifier</key> <string><TEAMID></string> <key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.application-groups</key> <array> <string><app.bundle.name></string> </array> …

1
适用于MacOs Catalina的Electron OpenGL
我正在建立一个电子应用程序,但是我遇到一个错误,这使渲染变得非常缓慢,并导致较高的cpu使用率 [1] Unable to create basic Accelerated OpenGL renderer. [1] Unable to create basic Accelerated OpenGL renderer. [1] Core Image is now using the software OpenGL renderer. This will be slow. 我试图找出答案,但是我找不到关于该问题的答案。有人对这个问题有任何想法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.