Files
nl-game/electron/preload.cjs

21 lines
1022 B
JavaScript
Raw Normal View History

// Electron 预加载脚本:以 contextBridge 向渲染进程暴露最小桌面端 API
// 前端凭 window.desktop 是否存在来区分「桌面端 / 浏览器」两种运行环境
const { contextBridge, ipcRenderer } = require('electron')
// 同步读取后端服务器地址必须在页面脚本执行前就绪axios/WS 初始化要用)
const serverBase = ipcRenderer.sendSync('nlg:get-server-base')
contextBridge.exposeInMainWorld('desktop', {
// 后端服务器地址(形如 http://127.0.0.1:8080结尾不带斜杠
serverBase,
// 修改服务器地址(校验通过后主进程会自动重载页面)
setServerBase: (url) => ipcRenderer.invoke('nlg:set-server-base', url),
// 检查桌面端新版本silent=true 时已是最新版不弹窗,用于启动自动检查)
checkUpdate: (silent = false) => ipcRenderer.invoke('nlg:check-update', silent),
// 运行环境版本信息
versions: {
electron: process.versions.electron,
chrome: process.versions.chrome,
},
})