通常在mac上,当我关闭窗口时它不会退出应用程序但是在使用node webkit时它会退出应用程序.
有没有人知道一个解决方法所以当我点击"x"它只是关闭窗口但不关闭应用程序?
在此先感谢您的帮助.

我正在使用node-webkit和一个名为edge的外部模块.
根据node-webkit文档,包含本机代码的模块必须使用nw-gyp相反的方式重新编译node-gyp.我能够无错误地重新编译,node-webkit似乎导入模块OK.
继承我的代码.我正在尝试使用的代码:
var edge = require('edge.node');
var hello = edge.func(function () {/*
async (input) =>
{
return ".NET welcomes " + input.ToString();
}
*/});
hello('Node.js', function (error, result) {
if (error) throw error;
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)
在node-webkit中运行时会引发以下错误.
Uncaught TypeError: Object [object Object] has no method 'func'
Run Code Online (Sandbox Code Playgroud)
如果把对象写出来console.log我可以看到:
Object {initializeClrFunc: function}
initializeClrFunc: function () { [native code] }
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
所以该模块似乎已经加载.如果我在node-webkit之外运行相同的代码,一切都很完美,我可以访问该func函数.这让我发疯了 - 任何帮助都会非常感激.
让我说我有一个应用程序,我希望它是独立可执行的.我发现你可以使用https://github.com/rogerwang/node-webkit使用普通的网页,webapps来做到这一点.
但如果它的Chrome打包应用程序你怎么做.
我知道它可以在幻灯片中看到它使用webkit.
https://speakerdeck.com/u/zcbenz/p/node-webkit-app-runtime-based-on-chromium-and-node-dot-js
尝试让Google Drive API在node-webkit中运行.
发送auth消息时,将发送一个Origin of File://被拒绝.
https://accounts.google.com/o/oauth2/auth
?client_id=<some value>
&scope=https://www.googleapis.com/auth/drive.appdata
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive
&immediate=true
&proxy=oauth2relay1232990068
&redirect_uri=postmessage
&origin=file://
&response_type=token
&state=1938150804|0.1319366391
&authuser=0
Run Code Online (Sandbox Code Playgroud)
不确定为什么它会从gapi那里发送 - 任何人都知道如何从node-webkit授权google驱动器?
在node-webkit中,如何在页面加载时设置窗口的背景颜色?它似乎总是白色的,但我要么是透明的,要么(在我的情况下)是绿色的.
我尝试过设置package.json transparent: true的window选项,但似乎没有任何效果.
我不想保护我在exe文件中打包的node-webkit桌面应用程序的代码.问题不是直接在文件上,而是使用专用端口进行远程调试.
也许我还没有理解,但在Windows上,如果我执行"netstat -a -o"命令,我会看到一个与应用程序关联的开放端口,如果我在浏览器上打开此端口,我有一个页面"可检查的WebContents"和webkit应用程序的链接.
使用此调试窗口,可以访问应用程序的所有源,但我不知道如何禁用此功能.
我正在为视频流创建基于nodewebkit和webrtc的桌面应用程序.在创建时,我尝试使用getusermedia API,但在我的Linux机器上遇到以下错误.
[15464:0224/125017:错误:browser_main_loop.cc(162)]没有SUID沙箱运行!有关使用沙箱进行开发的详细信息,请参阅https://code.google.com/p/chro ... 注意:选项force_s3tc_enable的默认值被环境覆盖.
在谷歌的帮助下,我发现了以下有关suid的详细信息.
SUID(执行时设置所有者用户ID)是赋予文件的特殊类型的文件权限.通常在Linux/Unix中运行程序时,它会从登录用户继承访问权限.SUID定义为为用户提供临时权限,以使用文件所有者的权限运行程序/文件,而不是运行它的用户.简单来说,用户在执行文件/程序/命令时将获得文件所有者的权限以及所有者UID和GID
根据我的理解,node-webkit(nw.js)不需要运行沙箱.如果我错了,请纠正我.我在我的Mac OS X Mavericks上运行相同的nw应用程序,它运行完美.由于以下问题,我真的很困惑.
我应该在Linux上运行nw之前安装一个铬沙盒(虽然我没有在nw.js github页面上找到任何这样的指令)?
如果没有,我需要对我的Ubuntu 12.04 LTS进行哪些更改,以便我的应用程序不会要求沙盒?
我有一个cordova应用程序,我想使用Node Webkit在桌面上运行.
我需要用Node Webkit equivelant 替换cordova.plugins.email()函数,但我很难找到我需要的信息.
有人可以帮忙吗?
//email composer
$('#stage').on('click', '#email', function(event){
var pdfatt = (this.getAttribute('data-pdfemail'));
var profforename = window.localStorage.getItem('profForename');
var profsurname = window.localStorage.getItem('profSurname');
var profemail = window.localStorage.getItem('profEmail');
cordova.plugins.email.isAvailable(
function (isAvailable) {
cordova.plugins.email.open({
body:'<p><img src="wp-content/uploads/2016/06/Email_Header.jpg"/></p><br><br>From:<p>'+profforename+' '+profsurname+'</p><p>Tel:'+proftel+'</p><p>Mob: '+profmob+'</p><p>Email: '+profemail+'</p><br><br><a href="'+pdfatt+'"><img height="30px" src='+baseurl+'"/wp-content/uploads/2016/06/download-pdf.jpg"/><br>Click To Download the PDF</a><br><br><br><p><img src="/wp-content/uploads/2016/06/Email_Footer.jpg"/></p>',
subject: 'subject',
isHtml: true
});
//alert('Service is not available') unless isAvailable;
}
);
});
Run Code Online (Sandbox Code Playgroud)
上面的代码基本上打开了一个新的电子邮件并预先填充了电子邮件.我找不到关于如何做到这一点的很多信息.我遇到过nodemailer,但我认为这不是我需要的,因为我想在Outlook中打开并发送电子邮件并预填充,让用户添加电子邮件地址.
非常感谢
我想在NodeJS的后台运行一个进程,等待计算机不使用10分钟.我的意思是用户不要触摸键盘或鼠标.
换句话说:我想在任何窗口中收听键盘和鼠标事件,并在发生时通知我的应用程序.
为此任务,我能够使用普通节点,或nw.js或电子.
我认为我必须使用C++,本机模块和DLL.但我希望有一个更好,更简单的解决方案.
你有没有?
在最新的稳定版本(v0.18.8)上运行的Node-Webkit应用程序中,我有以下三行:
console.log("Check 1");
var spawn = require('child_process').spawn;
console.log("Check 2");
Run Code Online (Sandbox Code Playgroud)
当我有互联网时,我得到了预期的输出:
Check 1
Check 2
Run Code Online (Sandbox Code Playgroud)
当我断开互联网连接,或者没有网络可用时,我得到:
Check 1
net.js:10 Uncaught Error: EFILE
at net.js:10:23
at NativeModule.compile (bootstrap_node.js:531:7)
at NativeModule.require (bootstrap_node.js:472:18)
at internal/child_process.js:6:13
at NativeModule.compile (bootstrap_node.js:531:7)
at NativeModule.require (bootstrap_node.js:472:18)
at child_process.js:12:23
at NativeModule.compile (bootstrap_node.js:531:7)
at Function.NativeModule.require (bootstrap_node.js:472:18)
at Function.Module._load (module.js:446:25)
Run Code Online (Sandbox Code Playgroud)
将console.log("Check 2")永远不会运行,并且脚本的其余部分被忽略.
我不需要互联网连接来要求一些东西,所以我很困惑这里出了什么问题.其他一些require()陈述也会发生此错误,但不是全部.例如,require('nw.gui')工作正常.
如何在require()没有互联网连接的情况下使用?
我正在运行Windows 10,64位.
以下是演示此问题的示例:
的index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Title</title> …Run Code Online (Sandbox Code Playgroud) node-webkit ×10
node.js ×6
webkit ×2
cordova ×1
debugging ×1
electron ×1
getusermedia ×1
google-oauth ×1
javascript ×1
linux ×1
macos ×1
module ×1
native ×1
nw.js ×1
nwjs ×1
outlook ×1
port ×1
ubuntu ×1
webrtc ×1