我正在使用 Dart 制作游戏,并使用 node-webkit 和 node-webkit.dart 对其进行打包。 (node-webkit 模块的 Dart 包装器)。
我的目标是让 node-webkit 应用程序游戏显示为独立的 native 应用程序。为了实现这一目标,我删除了导航栏和其他一些东西。我的所有 Assets 都是本地的,游戏永远不需要连接到互联网。
我的 HTML 中有一些 anchor 链接(例如指向我的网站)。当我当前单击它们时,我的 node-webkit 窗口会打开其内部的链接。除此之外,这从来都不是我的计划,自从我拿走了导航栏后,就没有办法返回游戏了。
所以我的问题:是否可以制作一个从外部打开 anchor 链接的处理程序(在用户选择的浏览器中)?请记住,可以动态添加 anchor 链接。
我知道Shell.openExternal(url)
,但我想不出一种方法让每个 anchor 链接都调用它。
谢谢!
最佳答案
事实证明,有一个 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 是因为当我的游戏在 Node 环境之外运行时会抛出错误)。
关于node.js - 从 node-webkit 打开外部 anchor 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475222/