Nodejs 关于node-webkit开机启动的问题

Nodejs 关于node-webkit开机启动的问题

有一个项目想用node-webkit做嵌入式软件的开发,但是怎么在进入xwindows之前全屏启动node-webkit,不知道有没有有经验的同学,指点一二。

3 回复

Nodejs 关于node-webkit开机启动的问题

在使用 node-webkit 开发嵌入式软件时,你可能会遇到需要在系统启动后自动全屏启动 node-webkit 的需求。以下是一个简要的指南,帮助你在 Linux 系统上实现这一目标。

1. 创建一个启动脚本

首先,你需要创建一个简单的启动脚本,该脚本将在系统启动时运行。假设你的 node-webkit 应用程序位于 /home/user/myapp 目录下,并且主 HTML 文件为 index.html

创建一个启动脚本文件,例如 start_myapp.sh

#!/bin/bash
cd /home/user/myapp
./nw .

确保该脚本具有可执行权限:

chmod +x start_myapp.sh

2. 将启动脚本添加到启动项

接下来,你需要将这个启动脚本添加到系统的启动项中。你可以通过修改 .bash_profile 或者使用 systemd 来实现这一点。

方法一:修改 .bash_profile

编辑用户主目录下的 .bash_profile 文件(如果不存在则创建),并添加以下行:

@reboot /home/user/start_myapp.sh

方法二:使用 systemd

创建一个新的 systemd 服务文件,例如 /etc/systemd/system/myapp.service

[Unit]
Description=My Node-WebKit Application

[Service]
ExecStart=/home/user/start_myapp.sh
Restart=always
User=user
Environment=DISPLAY=:0

[Install]
WantedBy=multi-user.target

启用并启动该服务:

sudo systemctl enable myapp.service
sudo systemctl start myapp.service

3. 设置全屏模式

为了使 node-webkit 在启动时全屏显示,可以在 index.html 中添加一些 JavaScript 代码来实现这一点:

<!DOCTYPE html>
<html>
<head>
    <title>My App</title>
    <script>
        window.onload = function() {
            nw.Window.get().maximize();
        }
    </script>
</head>
<body>
    <!-- Your content here -->
</body>
</html>

这段代码会在页面加载完成后将窗口最大化,从而达到全屏的效果。

总结

通过上述步骤,你可以实现在系统启动时自动全屏启动 node-webkit 应用程序。首先创建一个启动脚本,并将其添加到系统的启动项中;然后设置全屏模式。希望这些信息对你有所帮助!


我帮你找到一篇教程

要在Linux系统上实现开机后自动以全屏模式启动node-webkit(现称为NW.js),可以通过创建一个桌面启动器或使用系统的启动脚本来实现。以下是两种方法的详细步骤:

方法一:使用桌面启动器

  1. 创建一个启动脚本: 创建一个shell脚本,例如start_nw.sh,内容如下:

    #!/bin/bash
    nw /path/to/your/app &
    sleep 2
    xdotool search --onlyvisible --class "nw" windowactivate --sync key F11
    

    这个脚本首先启动你的NW.js应用,然后等待2秒(确保窗口已经加载),最后发送F11键模拟全屏切换。

  2. 为脚本添加执行权限

    chmod +x start_nw.sh
    
  3. 创建桌面启动器: 创建一个.desktop文件,例如start_nw.desktop,并放置在~/.config/autostart/目录下。

    [Desktop Entry]
    Type=Application
    Exec=/path/to/start_nw.sh
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name=start_nw
    Comment=start node-webkit in full screen
    

方法二:使用Systemd服务

  1. 创建一个Systemd服务文件: 创建一个名为start_nw.service的文件,内容如下:

    [Unit]
    Description=Start Node Webkit in Full Screen
    After=graphical.target
    
    [Service]
    User=<your-user-name>
    ExecStart=/path/to/start_nw.sh
    Restart=always
    
    [Install]
    WantedBy=default.target
    
  2. 将服务文件放置在正确的目录: 将该文件复制到/etc/systemd/system/目录下。

  3. 启用并启动服务

    sudo systemctl enable start_nw.service
    sudo systemctl start start_nw.service
    

这两种方法都可以实现开机自动启动并全屏显示你的NW.js应用。选择适合你环境的方法进行设置即可。

回到顶部