# 通过 URL Scheme 唤醒 Electron 桌面 win 端

  1. 要实现程序在首次安装,以及之后,通过 canicode://?token=123456 这种链接的方式,唤醒打开 Electron 桌面 win 端,并且卸载程序后,浏览器不再弹框提示用户点击打开,那么安装和卸载程序的时候,就必须注册自定义 nsh 脚本,完成 windows 系统注册表的写入和删除操作
  2. 基于以上需求,因为我的项目依赖了 electron-builder (opens new window),所以按照下文编写即可打包实现:

# 一、编写 nsis (opens new window) 脚本: installer.nsh

!macro customInstall
  WriteRegStr HKCR "canicode" "" "URL:canicode"
  WriteRegStr HKCR "canicode" "URL Protocol" ""
  WriteRegStr HKCR "canicode\shell" "" ""
  WriteRegStr HKCR "canicode\shell\Open" "" ""
  WriteRegStr HKCR "canicode\shell\Open\command" "" "$INSTDIR\${APP_EXECUTABLE_FILENAME} %1"
!macroend

!macro customUnInstall
  DeleteRegKey HKCR "canicode"
  DeleteRegKey /ifempty HKCR "canicode"
!macroend
1
2
3
4
5
6
7
8
9
10
11
12

# 二、配置 NsisOptions (opens new window)

nsis: {
    oneClick: false, // 是否一键安装
    perMachine: true, // 选择按机器安装
    allowElevation: true, // 允许请求提升。如果为false,则用户必须使用提升的权限重新启动安装程序。
    allowToChangeInstallationDirectory: true, // 允许修改安装目录
    createDesktopShortcut: true, // 创建桌面图标
    runAfterFinish: false, // 安装完成后不默认勾选打开应用
    createStartMenuShortcut: true, // 创建开始菜单图标
    shortcutName: "canicode", // 图标名称
    include: "installer.nsh", // 自定义 NSIS 脚本
}
1
2
3
4
5
6
7
8
9
10
11
Last Updated: 2023/9/18 06:50:08