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

PHP站点点击按钮唤起Electron游戏客户端的实现方法咨询

问题解答

你提到的通过唯一标识解决路径不统一问题的思路是完全可行的,这也是桌面端网页调起本地应用的标准实现方案,核心是给Electron客户端注册全局唯一的自定义URL协议,系统会自动关联协议和你的客户端程序,完全不需要关心用户的安装路径。


具体实现步骤

Electron端配置

你可以通过打包配置直接实现协议的全局注册,以常用的electron-builder打包工具为例:

  1. 在package.json的打包配置段添加协议声明,安装应用时会自动写入系统注册表(Windows)/配置文件(macOS/Linux)完成关联:
{
  "build": {
    "protocols": {
      "name": "你的游戏客户端名称",
      "schemes": ["你自定义的唯一协议标识,比如mygame"]
    }
  }
}
  1. 在Electron主进程中添加协议触发监听逻辑,还可以直接解析链接带的参数实现免登等业务逻辑:
// macOS/Linux 监听协议触发
app.on('open-url', (event, url) => {
  event.preventDefault()
  // 解析链接参数示例:提取登录token
  const userToken = new URL(url).searchParams.get('token')
  // 后续业务逻辑处理
})

// Windows 额外适配逻辑
if (process.platform === 'win32') {
  const triggerUrl = process.argv.find(arg => arg.startsWith('mygame://'))
  if (triggerUrl) {
    // 同上处理链接参数逻辑
  }
}

网站端配置

PHP搭建的网站不需要做特殊适配,只需要把「前往游戏客户端」按钮的跳转地址改成你的自定义协议链接即可:

<!-- 可以拼接当前用户的登录token等业务参数 -->
<a href="mygame://launch?token=<?php echo $_SESSION['user_login_token']; ?>">前往游戏客户端</a>

用户点击该链接时,浏览器会自动弹出系统级的确认打开弹窗,用户确认后系统会自动定位并启动本地安装的Electron客户端,完全不需要感知安装路径。


注意事项
  • 自定义协议标识要保证全局唯一,建议使用游戏名称的唯一缩写,避免和其他软件的协议冲突
  • 可添加兜底逻辑:网站端点击按钮后如果数秒内没有收到客户端启动的回调,弹出引导用户下载安装客户端的提示
  • 协议链接携带的敏感参数建议做加密处理,避免泄露用户信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:09:05