我正在尝试使用node-webkit创建node.js应用程序 .是否可以在node-webkit窗口中加载chrome扩展,并使其显示在chrome浏览器中
我已经完成了这个,但我只能理解它可以加载NPAPI插件.有没有办法将chrome扩展转换为NPAPI插件?
我一直在考虑学习如何基于网络技术制作简单的Mac OS X应用程序,我遇到了node-webkit,这看起来很引人注目.但是,我最近投入了学习Sinatra/Ruby的基础知识,我想继续学习这门课程.
对于使用Sinatra的开发人员,是否存在"node-webkit等效"?或者,是否有推荐的方法使用Sinatra框架(或Ruby)来构建基本上是Web包装器的OS X应用程序?
如何使用AngularJs和node-webkit关闭窗口?我不希望在浏览应用程序时使用windows.close()的功能.
我最近发现其中c:/Users/username/AppData/Local/AppName/Cache包含超过 100K 的缓存文件。
我读了一点,发现该gui.App.clearCache()方法应该解决这个问题。我在应用程序启动和关闭时执行此方法。(将 gui 分配给 后require("nw.gui"))
但是,这似乎没有帮助。什么都没有被删除。
任何想法为什么会这样?
刚刚开始使用node webkit,我只是通过iframe加载一个网站来开始...(我知道,很脏但是用两只手和一点时间完成工作).
<iframe src="http://somewebsite.com"></iframe>
Run Code Online (Sandbox Code Playgroud)
问题是,我为该网站登录了Google,这会在网站上创建一个弹出窗口.出于某种原因,它不在node-webkit中,我找不到任何关于启用弹出窗口的文档......
我用于Google登录的代码是他们在网站上提供的默认代码:https: //developers.google.com/accounts/docs/OAuth2Login
我目前没有在node-webkit配置中设置任何令人兴奋的东西:
"window": {
"toolbar": true,
"width": 1024,
"height": 768,
"min_width": 300,
"min_height": 300,
"position": "center",
"resizable": true,
"show_in_taskbar": true,
"icon": "www/resources/img/icon.png"
},
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何从iframe启用node-webkit上的弹出窗口以使Google OAuth正常工作?在此先感谢您的帮助.
我正在使用node-webkit开发一个应用程序,我需要播放音频.我已经使用Web Audio API和XMLHttpRequest成功播放了音频,但加载歌曲非常慢.根据格式和大小,最多需要1秒钟.
有没有办法使用node.js文件系统加载文件,然后将该数据传递给Web Audio API以减少加载时间?有没有更好的方法去做这整件事?
注意:我正在构建一个本机应用程序,因此我想播放音频而不是将其流式传输到客户端.我还需要能够对音频进行处理,这就是我研究Web Audio API的原因.
这是一个管理一堆webkit窗口的节点webkit应用程序.每个webkit窗口都使用signalR连接到MVC/webApi/signalR堆栈,没有任何问题.每个窗口通过websockets连接到1-3个集线器.一切都很好.
我的客户希望在管理所有其他窗口的基本节点应用程序中使用SignalR.事情变得"有趣"......
因此,虽然节点应用程序在webkit环境中运行,但它是从文件系统提供的(header:origin = file://)
所以我已经启动了signalR(没有JSONP,因为我的目标是websockets)
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration();
map.RunSignalR(hubConfiguration);
});
Run Code Online (Sandbox Code Playgroud)
因此,当我在用户登录到从Node生成的一个窗口之前连接到节点应用程序时,signalR通过websockets连接正常,并且我们在登录时没有收到任何错误(即用户已更改身份).
var connection = window.$.hubConnection("http://localhost");
connection.logging = true;
connection.start()
.done(function () { console.log('Now connected, connection ID=' + connection.id); })
.fail(function () { console.log('Could not connect'); });
Run Code Online (Sandbox Code Playgroud)
问题是我在HubCallerConext服务器端没有身份.
因此,如果用户首先登录,那么节点应用程序将在另一个衍生窗口中创建cookie,这就是事情变得奇怪的地方.SignalR无法通过websockets连接以下错误(来自fiddler)
无法识别的用户身份.在活动的SignalR连接期间,用户身份不能更改.
这是协商调用,然后是通过websockets连接(升级)的失败调用. 我有一个fiddler规则用localhost替换Origin:file://.以防这是影响它.
GET http://localhost/signalr/negotiate?clientProtocol=1.4&connectionToken=qs09pHGxr6x5fff1GJ%2FChWUnpSLX5ljV8FuS3h06P%2FhpS55cjNvh2uFHHTXukDI%2BK%2BcgsC6%2BWVJHba4xrkt6IVc2KwGIfm4eeyHrigNFRotjBYKb&connectionData=%5B%7B%22name%22%3A%22windowmanagementhub%22%7D%5D&_=1429572950768 HTTP/1.1
Host: localhost
Connection: keep-alive
Accept: text/plain, */*; q=0.01
X-DevTools-Emulate-Network-Conditions-Client-Id: 2E81759B-036D-4E92-ADF4-865AFBF59D2
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: …Run Code Online (Sandbox Code Playgroud) 我正试图在我的Windows文件系统上的其他地方启动.exe.
spawn = require('child_process').spawn;
game.process = spawn(path.join(config.values.armaPath, 'arma3.exe'), {
detached: true
});
Run Code Online (Sandbox Code Playgroud)
我把它包装在try/catch中,我得到的错误没有帮助:
Error {code: "UNKNOWN", errno: "UNKNOWN", syscall: "spawn", stack: (...), message: "spawn UNKNOWN"}code: "UNKNOWN"errno: "UNKNOWN"message: "spawn UNKNOWN"
Run Code Online (Sandbox Code Playgroud)
我已经确认.exe的path.join是正确的.
我也试过了
game.process.stdout.on('error'...
Run Code Online (Sandbox Code Playgroud)
但那永远不会开火.
编辑,我也尝试了另一种方法:
var child = execFile(path.join(config.values.armaPath, 'arma3.exe'),
function(error,stdout,stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+ error.code);
console.log('Signal received: '+ error.signal);
}
console.log('Child Process stdout: '+ stdout);
console.log('Child Process stderr: '+ stderr);
}
);
Run Code Online (Sandbox Code Playgroud)
但是这只是相同代码的错误,就像在调用spawn函数的回调之前抛出了try/catch块错误.
有趣的是,我尝试在同一目录中调用.exe,它确实有效......
我正在尝试使用NW.js运行后台任务(文件系统扫描程序).
在电子,这是可以做到用,并呼吁和主脚本,并在孩子的脚本.child_process.fork(__dirname + '/path_to_js_file')child.on('message', function(param) { ... })child.send(...)process.on('message', function(param) { ... })process.send(...)
在NW.js中,我尝试使用Web Workers但没有任何反应(我的webworker脚本从未执行过).
我还看到有一种解决方法,child_process.fork("path_to_js_file.js", {silent: true, execPath:'/path/to/node'})但这意味着将Node.js捆绑到我未来的应用程序中...
另一个想法?