前言
有没有想过,在百度网盘网页中下载文件时,为什么可以拉起客户端 ?这其实是通过 URL Protocol 实现的,那什么是 URL Protocol 呢,又该如何自定义来实现网页拉起客户端呢 ?本文就展开进行说明。
什么是 URL Protocol ?
URL Protocol 是一种特定的 URL 方案与本地应用程序进行交互的机制,允许开发人员在 WEB 应用或 HTML 页面中使用自定义的 URL 链接来启动本地安装的应用程序。这种机制广泛用于桌面应用程序与网页之间的交互。
自定义 URL 协议
注册说明
我们可以自定义协议名称,如:myapp://
,在访问这样的链接时,Windows 系统会尝试找到与该协议关联的应用程序,为了让系统识别此 URL 协议,我们需要在注册表中进行注册。
需要在如下任意 Classes
路径下,添加子键:
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE\Software\Classes
HKEY_CURRENT_USER\Software\Classes
.....
注册协议
以 HKEY_CLASSES_ROOT
路径下添加子项为例,参考如下:
Win
+R
打开运行窗口,输入regedit
打开注册表编辑器。先在
HKEY_CLASSES_ROOT
路径下,新建子项myapp
,然后在
myapp
根键中,新建字符串值,名称为URL Protocol
,这个是必须存在的,值可以为空。可以在
myapp
根键下,通过修改默认值,来定义链接名称,配置好之后,访问 myapp:// 链接,会看到浏览器如下提示,但是点击
打开 myapp 的自定义协议
按钮是没有反应的,这里还需要配置关联应用。
关联应用
在
myapp
下,新建多级子项(shell\open\command
),具体呈现如下:在
command
根键下,通过修改默认值,来关联应用打开命令,以关联打开C:\Windows\System32\cmd.exe
为例,%1
用来接受传入参数,最终如下:访问 myapp:// 链接,浏览器提示如下,说明配置关联应用生效了。
至此,自定义 URL Protocol
就完成了,具体可以根据实际使用场景自行调整,当然也可以参考如下,来通过注册表文件进行注册。
上述步骤注册协议、关联应用配置也可将如下内容,复制到文本中,另存为 .reg
注册表文件,双击进行注册。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\myapp]
"URL Protocol"=""
@="myapp 的自定义协议"
[HKEY_CLASSES_ROOT\myapp\shell\open\command]
@="\"C:\\Windows\\System32\\cmd.exe\" \"%1\""