当前位置:首页 » 《我的小黑屋》 » 正文

前端网页打开PC端本地的应用程序实现方案

15 人参与  2024年09月23日 08:01  分类 : 《我的小黑屋》  评论

点击全文阅读


最近开发有一个需求,网页端有个入口需要跳转三维大屏,而这个大屏是一个exe应用程序。产品需要点击这个入口,并打开这个应用程序。这个就类似于百度网盘网页跳转到PC端应用程序中。

这里我们采用添加自定义协议的方式打开该应用程序。一开始可以查看该程序是否存在注册表中。注册表是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。我们可以通过注册表来定义打开软件的协议。

我们先可以打开注册表查看是否存在该程序的协议。

快捷键 win+R,并输入regedit

展开 HKEY_CLASSES_ROOT,查看是否存在

如果不存在的话那我们就要自定义该协议,下面是协议的一些配置信息,红框是该程序保存的路径,注意路径不能含有中文

首先我们先创建一个txt文档

我们还需要定义协议名称

以下是代码,方便复制

Windows Registry Editor Version 5.00    [HKEY_CLASSES_ROOT\SZWSqure]"URL Protocol"="E:\\work_projects\\HR\\SZWSquare20240710\\SZWSqure.exe"@="SZWSqure"[HKEY_CLASSES_ROOT\SZWSqure\DefaultIcon]@="E:\\work_projects\\HR\\SZWSquare20240710\\SZWSqure.exe,1"[HKEY_CLASSES_ROOT\SZWSqure\shell][HKEY_CLASSES_ROOT\SZWSqure\shell\open]    [HKEY_CLASSES_ROOT\SZWSqure\shell\open\command]@="\"E:\\work_projects\\HR\\SZWSquare20240710\\SZWSqure.exe\"\"%1\""

编辑好这个文档后,将.txt改为.reg后缀,双击运行,点击是

添加成功

可以看到我们刚刚的协议已经添加到了注册表

最后我们需要编写前端代码,定义一个打开程序的函数

export function openUrlWithInputTimeoutHack(url, failCb, successCb) {  let target = document.createElement('input')  target.style.width = '0'  target.style.height = '0'  target.style.position = 'fixed'  target.style.top = '0'  target.style.left = '0'  document.body.appendChild(target)  target.focus();  var handler = _registerEvent(target, "blur", onBlur);  console.log('focus')  function onBlur() {      console.log('blur')      successCb && successCb()      handler.remove()      clearTimeout(timeout)      document.body.removeChild(target)  };  //will trigger onblur  location.href = url  // Note: timeout could vary as per the browser version, have a higher value  var timeout = setTimeout(function () {      console.log('setTimeout')      failCb && failCb()      handler.remove()      document.body.removeChild(target)  }, 1000);}function _registerEvent(target, eventType, cb) {  if (target.addEventListener) {      target.addEventListener(eventType, cb);      return {          remove: function () {              target.removeEventListener(eventType, cb);          }      };  } else {      target.attachEvent(eventType, cb);      return {          remove: function () {              target.detachEvent(eventType, cb);          }      };  }}

调用该方法,打开应用程序,第一个参数是刚刚我们定义的协议名,第二个参数是失败回调的函数,第三个参数是成功回调的函数

至此,我们可以通过js打开本地的应用程序。

参考的博客:

点击vue页面链接打开本地exe文件_网页如何打开 客户端 exe vue-CSDN博客

VUE项目判断电脑是否安装某应用程序,安装则唤起,未安装则跳转下载页面_vue验证cs系统的客户端软件是不是打开了-CSDN博客

https://juejin.cn/post/6844903989155217421?searchId=20240724095902CC188086AFD5CC2138AC#heading-11


点击全文阅读


本文链接:http://zhangshiyu.com/post/163245.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 爱如烟花,转瞬即逝(顾鸢徐承泽沈景初)_爱如烟花,转瞬即逝
  • 为夺我家产,嫂子给我女儿下铊隐藏结局_[婆婆悦悦秦衡]精彩章节免费试读
  • 妹妹被双竹马骗上赌船输光一切后,我让她跟到底(沈如霜江月陆敬轩)_妹妹被双竹马骗上赌船输光一切后,我让她跟到底(沈如霜江月陆敬轩)
  • 丧尸末日女友为等竹马拦我生路(陆云野林小雨陈朔)全书免费_(陆云野林小雨陈朔)丧尸末日女友为等竹马拦我生路后续(陆云野林小雨陈朔)
  • 九幽不渡卿孟卿卿谢昭远良心九幽不渡卿孟卿卿谢昭远良心免费
  • 夫君中状元后立刻休妻,发现我是当朝公主后悔疯了小说精彩节选试读_「宋鹤眠宋鹤胡子」悬念章节免费释出
  • 改嫁活死人王爷后,状元郎悔疯了小说节选推荐_陆彦明王柳枝情感冲突名场面试读章
  • 霜风冽尽终成空节选高光片段速递‌(林学文苏月娥)_霜风冽尽终成空节选高光片段速递‌
  • 宁做乞丐婆,不当世子妃(熹微谢云舟)全书免费_(熹微谢云舟)宁做乞丐婆,不当世子妃后续(熹微谢云舟)
  • 她若初雪映归途(顾余年徐霜晚)全书免费_(顾余年徐霜晚)她若初雪映归途后续(顾余年徐霜晚)
  • 老公爱我如命,却为情人将我折磨得支离破碎小说后续在线免费阅读_「夏柔路骄老公」全文在线阅读
  • 「地震被困,妈妈选择救弟弟」小说后续在线免费阅读_「弟弟姜南姜龙」最新章节免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1