Edge.js连接node.js和.NET.Node-webkit是一个基于Chromium和node.js的应用程序运行时.有人把这两个放在一起吗?可能吗?
说明:我想在HTML + Typescript中编写前端应用程序,在F#中编写后端应用程序(重计算等).
我在使用node-webkit的简单示例中遇到以下错误:
Uncaught AssertionError: path must be a string
Run Code Online (Sandbox Code Playgroud)
的index.html
//base.js
require(["test"], function(test) {
test.init();
});
//test.js
define(function(){
window.c = window.console;
return {
init: function(){
c.log('test.init');
},
destroy: function(){
c.log('test.destroy');
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用nodejs和express开发一个应用程序.
我想将它导出为带有node-webkit的包.
如何启动服务器并使用它运行应用程序?
是否有任何简单的方法来对齐Node-Webkit应用程序的窗口?据我在文档中看到的那样,有一个像Window.moveTo()这样的元素,以及属性"position",但它只能有3个值:"center","mouse"和null.因此,为了在监视器的右侧对齐应用程序,我需要在启动时从代码中手动移动窗口,还是有其他方法吗?
通常在mac上,当我关闭窗口时它不会退出应用程序但是在使用node webkit时它会退出应用程序.
有没有人知道一个解决方法所以当我点击"x"它只是关闭窗口但不关闭应用程序?
在此先感谢您的帮助.

如何重置Chrome中的WebRTC组件状态 - 无需重新加载页面 - 当它们被踢入无效状态时如何?有关我如何复制此状态的详细信息,请参阅下文,以及为什么我这样问:
尝试在拨打电话时设置Ice Candidates时,我在Chrome 35/node-webkit 0.10.0中收到以下错误:
无法在"RTCPeerConnection"上执行"addIceCandidate":无法添加ICE候选项.
现在,我知道为什么会这样.我正在制作一个可以处理一些普通用户滥用的ROBUST WebRTC应用程序.要复制这种状态,我基本上必须进行一些WebRTC调用然后快速杀死它们然后立即尝试另一个调用.我猜这必须将PeerConnection和其他组件放到一个不同的状态,在那里它会发生B,但我重新开始用A.这可以通过以下错误消息证明:
无法设置会话描述:无法设置远程应答sdp:调用错误状态:STATE_INIT
现在,我们在互联网上看到的大多数WebRTC演示,如http://apprtc.appspot.com,都是无状态的,浏览器经常刷新,导致重置DOM状态.因此,对于那些开发人员来说,答案很简单.只需重新加载页面并将其称为好.
目前,我必须在DOM进入此状态时重新加载应用程序.但是,这不是一个可接受的解决方案,因为我正在构建单页应用程序,而不是网站,
我想知道是否有办法调用API来告诉它重置抛出这些错误的状态?
我尝试了以下命令,从node-webkit(Chrome 35)中的JavaScript控制台,看看我是否可以手动重置PeerConnection的状态,但它没有帮助:
var properties = {};
properties.pcConfig = {
"iceServers": [{
"url": "stun:stun.l.google.com:19302"
}]
};
properties.pcConstraints = {
"optional": []
};
peerConn = new RTCPeerConnection(properties.pcConfig, properties.pcConstraints);
peerConn.close();
Run Code Online (Sandbox Code Playgroud)
peerConn.signalingState --> "closed"
peerConn.iceConnectionState --> "closed"
peerConn.iceGatheringState --> "complete"
Run Code Online (Sandbox Code Playgroud) 我已经为我的node-webkit应用程序创建了一个函数来触发OS X通知.它工作得很好但我想知道我是否可以设置系统或自定义声音而不是经典的iPhone boing声音?
我查看了Mozzila的官方通知API文档(https://developer.mozilla.org/en-US/docs/Web/API/notification)并且没有声音选项,但是可能有node-webkit植入该功能(无法想象他们没有),但如果他们这样做,我似乎无法找到任何关于它的文件.
所以我的问题是,node-webkit中是否有通知的声音选项?
function notif(title ,tekst, url){
var notice = new Notification(title, {
body: tekst
});
notice.onshow = function(evt) {
setTimeout(function(){notice.close()}, 5000);
}
notice.onclick = function(evt) {
gui.Shell.openExternal(url);
setTimeout(function(){notice.close()}, 1000);
};
}
Run Code Online (Sandbox Code Playgroud) 我们使用node webkit开发了一个桌面应用程序,它运行正常.我唯一的疑问是,我们是否需要对作为节点js服务器组件的一部分编写的.js文件进行缩小.我们通常在主要为UI视图编写的javascript上执行缩小,以减少在加载HTML的相关javascripts期间的有效负载,并且还隐藏脚本中的编码信息以使其难以修改.
因此,我们需要在节点js服务器端.js文件上执行类似的连接和缩小过程,然后将节点webkit可执行文件共享给Customer.如果没有节点js文件的缩小,应用程序就可以正常工作.
所以,回到我的问题 - 我们是否需要为节点js应用程序执行javascripts连接和缩小?
我们正在开发基于Chrome应用程序和NWJS 0.13.0 Alpha版本的应用程序,因为较低版本不支持Chrome应用程序.我们需要版本13,因此我们可以使用串行端口.
但是在Windows或Ubuntu中,当按下右边的clic时,它显示了一个菜单,我禁用了(因为它是这样指定的),在我的所有HTML中使用以下函数:
<body oncontextmenu="return false">
<script language="javascript">
document.onmousedown=disableclick;
function disableclick(event) {
if(event.button==2) {
return false;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是在Mac OS X中,由于自定义菜单,我们遇到了另一个问题,在阅读清单格式后,我发现在我的package.json文件中我需要添加"no-edit-menu": false属性而该菜单不再显示,该package.json文件如下:
{
"main": "main.html",
"name": "PAGUSS",
"description": "Paguss Payment Services",
"version": "0.1.0",
"keywords": [ "paguss", "payment" ],
"window": {
"title": "Paguss",
"transparent": true,
"icon": "assets/images/64x64.png",
"toolbar": false,
"frame": true,
"resizable": true,
"position": "mouse",
"min_width": 400,
"min_height": 500,
"max_width": 1200,
"max_height": 800,
"no-edit-menu": false
},
"webkit": {
"plugin": false
} …Run Code Online (Sandbox Code Playgroud) javascript google-chrome-devtools node-webkit chrome-app-developer-tool
我有一个Node Webkit桌面应用程序,需要从服务器下载文件并在用户离线时本地保存.当我知道文件名是什么时,我可以下载并保存文件,但是如何读取服务器上目录的内容以便下载每个文件?
function cacheFiles(filelink, filepath, cb) {
var path_array = filelink.split("/");
var foldername = path_array[path_array.length - 2]
//create new folder for locally html files
var newdir = filepath + '/' + foldername;
if (fs.existsSync(newdir)){
alert('file already exists, cannot cache this file.');
} else {
fs.mkdirSync(newdir);
}
//download and save index.html - THIS WORKS
var indexfile = fs.createWriteStream(newdir+'/index.html');
var request = http.get(filelink, function(response) {
response.pipe(indexfile);
indexfile.on('finish', function() {
indexfile.close(cb);
});
});
//read contents of data folder - THIS DOESN'T WORK
var …Run Code Online (Sandbox Code Playgroud)