如何让NeutralinoJS应用启动时居中显示在屏幕中央?
如何让NeutralinoJS应用启动时窗口居中
确实,NeutralinoJS不像Electron那样提供现成的center()方法,但咱们可以通过获取屏幕尺寸+计算窗口坐标的方式手动实现启动居中效果,完全能达到原生应用启动画面的体验,下面是具体实现步骤:
实现思路
- 获取当前屏幕的可用宽高
- 确定窗口的目标宽高(可以从配置文件读取,也可直接指定)
- 计算窗口居中时的左上角坐标:
x = (屏幕宽度 - 窗口宽度) / 2,y = (屏幕高度 - 窗口高度) / 2 - 在应用初始化完成后,调用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
相关产品推荐
相关产品推荐

