js通过浏览器打开本地应用程序(exe文件)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJR10byh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值