我正在与Dart进行游戏,我用node-webkit和node-webkit.dart(用于node-webkit模块的Dart包装器)打包它。
我的目标是让node-webkit应用程序游戏显示为独立的本机应用程序。为了达到这个目的,我剥去了导航栏和其他一些东西。我的所有资产都是本地的,游戏永远不必连接到互联网。
我的HTML中有一些锚链接(以我的网站为例)。当我单击它们时,我的node-webkit窗口会在其自身内打开链接。除了这个从未成为我的计划之外,自从我拿走导航栏以来,没有办法重返游戏。
所以我的问题是:是否可以创建一个外部打开锚链接的处理程序(在用户选择的浏览器中)?请记住,可以动态添加锚链接。
我知道Shell.openExternal(url)
,但我无法想办法让每个锚链接都能调用它。
谢谢!
答案 0 :(得分:2)
事实证明,有一个node-webkit事件来处理链接,但node-webkit.dart似乎不支持它。
为了解决我的问题,我在我的主HTML文件中添加了一个内联JS脚本:
<script type="text/javascript">
try {
var gui = require('nw.gui');
var win = gui.Window.get();
win.on('new-win-policy', function (frame, url, policy) {
gui.Shell.openExternal(url);
policy.ignore();
});
} catch(e) { }
</script>
(空的try / catch就在那里,因为当我的游戏在节点环境之外运行时会抛出错误。)