检测Web应用程序是否在NWJS中运行

时间:2015-08-12 14:38:24

标签: require node-webkit

我正在创建一个网络应用程序,我计划从标准网站和NWJS独立应用程序提供。在NWJS中,我可以使用require命令,但不能在浏览器中使用。我可以用if语句包装我的命令:

<script>
  if (typeof require === "function") {require('nwjs-osx-menu')(window)}
</script>

还有其他方法可以被认为是更好的做法吗?

编辑:关注@ Kuf的建议

<script>
  if (typeof require === "function") {
    try{
      require('nwjs-osx-menu')(window)
    } catch (error) {}
  }
</script>

3 个答案:

答案 0 :(得分:1)

<强>更新

如果唯一的区别是加载该库,那么您的代码似乎没问题。

原帖

有一个Web客户端需要模块,因此可能有点冒险。我使用了以下内容:

function is_nwjs(){
    try{
        return (typeof require('nw.gui') !== "undefined");
    } catch (e){
        return false;
    }
}

答案 1 :(得分:1)

process.__nwjs 如果存在nwjs,则该值将 1

enter image description here

答案 2 :(得分:0)

我的有限理解是,如果定义了process,则说明您位于NWJS中,并且可以访问诸如process.versions['nw-flavor']之类的字段。