最近项目有一个需求,需要通过浏览器打开项目内部开发的应用程序(exe文件)
Step1:在Windows电脑上新建txt文件
进行如下配置:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\universalLink]
@="universalLink Protocol"
"URL Protocol"= ""
[HKEY_CLASSES_ROOT\universalLink\DefaultIcon]
@="F:\\VS\\Vs Code\\Microsoft VS Code\\Code.exe"
[HKEY_CLASSES_ROOT\universalLink\shell]
@= ""
[HKEY_CLASSES_ROOT\universalLink\shell\open]
@= ""
[HKEY_CLASSES_ROOT\universalLink\shell\open\command]
@="\"F:\\VS\\Vs Code\\Microsoft VS Code\\Code.exe\""
其中的应用程序绝对路径,需要修改成自己需要打开的应用程序的绝对路径,注意路径中的 “\” 需要修改为 “\\”
Step2:配置好后,保存文件,并修改文件后缀为.reg,修改完成,双击运行
点击 “是”,即完成注册表的配置
Step3:判断用户的操作系统
// 判断是否为 Windows平台
/windows|win32/i.test(navigator.userAgent)
// 判断是否为 Mac平台
/macintosh|mac os x/i.test(navigator.userAgent)
如果是 Windows平台,继续进行Step4;如果是其他平台,提示exe只能在Windows环境下运行。
Step4:判断用户当前使用的浏览器
let userAgent=navigator.userAgent
//判断是否 Firefox浏览器
if (userAgent.indexOf("Firefox") > -1) {
openApp=true;
}
//判断是否 Chrome浏览器
if (userAgent.indexOf("Chrome") > -1){
openApp=true;
}
//判断是否 Edge浏览器
if (userAgent.indexOf("Edg") > -1){
openApp=true;
}
Step5:打开应用程序
法一:
<a href="universalLink://">打开应用程序</a>
法二:
window.location.href="universalLink://";
// or
window.open("universalLink://");
完整功能函数:
<el-button @click="open_miniapp" icon="el-icon-share" type="text">打开应用程序</el-button>
// 一键打开应用程序
open_miniapp() {
console.log(navigator.userAgent)
// 检测用户的设备是否是Windows系统
if (/windows|win32/i.test(navigator.userAgent)){
// 检测用户的浏览器是否能使用universalLink
let openApp=false;
let userAgent=navigator.userAgent
//判断是否 Firefox浏览器
if (userAgent.indexOf("Firefox") > -1) {
openApp=true;
}
//判断是否 Chrome浏览器
if (userAgent.indexOf("Chrome") > -1){
openApp=true;
}
//判断是否 Edge浏览器
if (userAgent.indexOf("Edg") > -1){
openApp=true;
}
if (openApp){
try {
window.location.href="universalLink://";
}catch (err) {
console.log(err)
this.$message.warning("出错了,请手动打开小程序!")
}
}else {
this.$message.warning("您的浏览器不支持自动打开小程序,请手动打开小程序!")
this.$notify.warning({
title:"提示",
content:"推荐使用Chrome浏览器!",
placement: "bottom-right",
duration:3000
})
}
}else {
this.$message.warning("您的设备暂不支持运行小程序,请在Windows电脑上进行操作!")
}
},