(Windows/Mac )浏览器通过自定义协议(URL Protocol)打开 exe 或 app
- 前端笔记
- 2018-03-08
- 370热度
- 0评论
导航
一、Windows
以 Windows 系统自带的计算器程序为例。添加一个名为“calc”的协议,浏览器中访问此协议的超链接,可以打开计算器程序。
1. 添加注册表(创建自定义协议)
新建一个后缀为 .reg 的文本文件(如 test.reg),写入如下内容:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\calc]
"URL Protocol"="C:\\WINDOWS\\system32\\calc.exe"
@="CalcProtocol"
[HKEY_CLASSES_ROOT\calc\DefaultIcon]
@="C:\\WINDOWS\\system32\\calc.exe,1"
[HKEY_CLASSES_ROOT\calc\shell]
[HKEY_CLASSES_ROOT\calc\shell\open]
[HKEY_CLASSES_ROOT\calc\shell\open\command]
@="\"C:\\WINDOWS\\system32\\calc.exe\" \"%1\""
保存后,双击执行此 .reg 文件,将配置内容写入注册表。
2. 超链调用
新建一个 test.html,内容如下:
<!DOCTYPE html>
<html>
<body>
<a href="calc://123">click</a>
</body>
</html>
浏览器打开 text.html,点击 click,成功打开计算器。
二、Mac
仍然以计算器为例。
1. 修改 Info.plist
首先打开计算器 app 文件夹:
用编辑器打开 Contents/Info.plist 文件,在最外层dict下的任意位置插入如下xml配置,并保存(要用管理员权限打开):
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>CalcURLHandler</string>
<key>CFBundleURLSchemes</key>
<array>
<string>calc</string>
</array>
</dict>
</array>
2. 使配置生效
手动启动一次 app,即可使配置生效。
但是,此时计算器会提示启动失败,我们需要重新签名。
在命令行执行:sudo codesign -fs - /Applications/Calculator.app
此时,计算器可以正常启动了。
注:如果通过 install4j 打包,在打包配置中修改了 Info.plist,安装软件后立即生效,不需要手动启一次。
3. 超链调用
与 windows 用法一模一样,不赘述。
在命令行执行:sudo codesign -fs – /Applications/Calculator.app
已经失效了。好像要申请开发者账号