需求
目前在项目中需要在html页面中通过连接(a标签)来唤醒本地应用,这个是基于window系统
解决方法
注册自己的协议
在window下需要将自己的协议添加至注册表中,下面以打开wps word为例
// 新建word.reg注册表文件(可以使用vscode进行编辑,安装reg插件来提供一些小提示)
Windows Registry Editor Version 5.00 // 注册表工具的版本信息
[HKEY_CLASSES_ROOT\word]
@="word" // 协议的名称
"URL Protocol"="D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe" // 可应用程序的路径,只能是exe的程序
[HKEY_CLASSES_ROOT\word\DefaultIcon]
@="D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe,1"
[HKEY_CLASSES_ROOT\word\shell]
@="open"
[HKEY_CLASSES_ROOT\word\shell\open]
@="open"
[HKEY_CLASSES_ROOT\word\shell\open\command]
@="\"D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe\" \"%1\"" // 应用程序路径,%1表示参数
注意
- 路径使用双杠“\”
- 如果字符串中有双引号("),那么需要加转义字符""
- 保存后双击文件执行,将这些项写入到注册表
检验是否注册成功
- 开始-运行 输入
word:
,可以运行该程序则表示注册成功了; - 在浏览器的地址栏直接输入:
word:
,可以运行则表示注册成功;
在web页面中启动word程序
href
里面配置自定义的协议,用于唤醒本地应用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<a href="word:">打开word</a>
</body>
</html>
最后
在谷歌浏览器69版本中测试可正常唤醒wps word程序。