You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让NeutralinoJS应用启动时居中显示在屏幕中央?

如何让NeutralinoJS应用启动时窗口居中

确实,NeutralinoJS不像Electron那样提供现成的center()方法,但咱们可以通过获取屏幕尺寸+计算窗口坐标的方式手动实现启动居中效果,完全能达到原生应用启动画面的体验,下面是具体实现步骤:

实现思路

  1. 获取当前屏幕的可用宽高
  2. 确定窗口的目标宽高(可以从配置文件读取,也可直接指定)
  3. 计算窗口居中时的左上角坐标:x = (屏幕宽度 - 窗口宽度) / 2,y = (屏幕高度 - 窗口高度) / 2
  4. 在应用初始化完成后,调用API设置窗口位置

具体代码实现

第一步:配置窗口基础尺寸

先在neutralino.config.json里定义好窗口的默认宽高(也可以在代码里直接指定):

{
  "applicationId": "com.example.centeredapp",
  "version": "1.0.0",
  "window": {
    "title": "居中启动的Neutralino应用",
    "width": 600,
    "height": 400,
    "resizable": true,
    "icon": "/assets/icons/appIcon.png"
  },
  "url": "/index.html"
}

第二步:编写居中逻辑

在你的主脚本文件(比如app.js)里,添加窗口居中的函数,并在应用初始化时执行:

// 定义窗口居中函数
async function centerWindow() {
  try {
    // 1. 获取屏幕尺寸
    const screenInfo = await Neutralino.window.getScreenSize();
    
    // 2. 获取配置里的窗口宽高(也可以直接写死,比如const windowWidth = 600;)
    const appConfig = await Neutralino.app.getConfig();
    const windowWidth = appConfig.window.width;
    const windowHeight = appConfig.window.height;
    
    // 3. 计算居中坐标(用Math.floor确保是整数像素)
    const posX = Math.floor((screenInfo.width - windowWidth) / 2);
    const posY = Math.floor((screenInfo.height - windowHeight) / 2);
    
    // 4. 设置窗口位置
    await Neutralino.window.setPosition(posX, posY);
  } catch (error) {
    console.error("窗口居中失败:", error);
  }
}

// 应用初始化时执行居中逻辑
Neutralino.init({
  load: async () => {
    await centerWindow();
    // 这里可以添加其他初始化逻辑
  }
});

额外说明

  • 如果你的窗口支持调整大小,想要在用户改变窗口尺寸后也能重新居中,可以监听windowResized事件,在事件回调里再次调用centerWindow()函数
  • 确保你已经在HTML里引入了Neutralino的全局API:<script src="/neutralino.js"></script>

内容的提问来源于stack exchange,提问作者adelriosantiago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:22:54