# 通过 URL Scheme 唤醒 Electron 桌面 win 端
- 要实现程序在首次安装,以及之后,通过 canicode://?token=123456 这种链接的方式,唤醒打开 Electron 桌面 win 端,并且卸载程序后,浏览器不再弹框提示用户点击打开,那么安装和卸载程序的时候,就必须注册自定义 nsh 脚本,完成 windows 系统注册表的写入和删除操作
- 基于以上需求,因为我的项目依赖了 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
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
2
3
4
5
6
7
8
9
10
11
SSH免密登录 →