方法就是 url protocol 的方式来实现。用这种方式实现,任何浏览器都兼容,不会存在只有IE或FIREFOX才行的情况。都用过QQ、迅雷、电驴,在网页上点击的时候,就会弹出QQ,迅雷,电驴的下载界面,用的就是这个原理。
1、使用记事本(或其他文本编辑器)创建一个 protocal.reg 文件,并写入以下内容
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Webshell]
@="URL:Webshell Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Webshell\DefaultIcon]
@="C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"
[HKEY_CLASSES_ROOT\Webshell\shell]
[HKEY_CLASSES_ROOT\Webshell\shell\open]
[HKEY_CLASSES_ROOT\Webshell\shell\open\command]
@="\"C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe\" \"%1\""
2、修改参数
使用记事本打开文件后,按照下图说明修改相关参数。
2.1、修改连接名称
修改红框内名称自定义即可,全部使用英文字符(该名称即为调用时的 href),共六处。
2.2、修改可执行文件路径
修改红框内可执行文件路径,共两处。需注意:文件路径中使用 “//” 分割。
3、执行 protocal.reg 文件
4、创建调用连接
连接地址为步骤 1 中所命名的链接名称,后面加://hello,(hello为传递参数,可任意添加)。
5、应用
<el-dropdown-menu slot="dropdown" class="dropdown-menu">
<el-dropdown-item @click.native="openCalc">
<i class="iconfont calc"></i>
计算器
</el-dropdown-item>
</el-dropdown-menu>
openCalc() {
protocolCheck("Webshell://",() => {
this.$confirm('您的安全协议未安装到本机,暂时无法使用魔法棒工具栏,是否查看安装教程?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
window.open("https://wxgj-oss.oss-cn-hangzhou.aliyuncs.com/other/zxz.reg")
}).catch(() => {
this.$message({type: 'error', message: '服务器异常'})
})
})
}
Ps:使用前,先要下载 protocolcheck.js 到项目中。