admin 管理员组

文章数量: 887007

最近项目有一个需求,需要通过浏览器打开项目内部开发的应用程序(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电脑上进行操作!")
      }
    },

本文标签: 应用程序 浏览器 文件 JS exe