VUE前端项目浏览器打开唤醒电脑应用程序(注册表协议,和node两种)

本文介绍了如何在国产化申威龙芯的Linux系统中,通过添加注册表协议和Vue中的Node.js调用来唤醒exe应用程序,包括创建桌面入口文件、注册协议、使用child_process模块以及与Electron打包的配合过程。
摘要由CSDN通过智能技术生成
我们是在国产化申威龙芯上搞的,唤醒exe应用程序我这边首先是两个思路,1是使用nonde,在vue中使用node进行打开,.2是使用添加注册表协议然后来唤醒;

asar文件操作

vue使用electron打包一些事项

一.使用添加注册表协议达到唤醒exe程序

我们项目实在国产化龙芯申威上的,也都是linux系统中定义协议

创建一个vscodes.desktop.(名字自定义都行,跟里面内容对照起来,我要打开vscode),里面编辑内容

[Desktop Entry]
Name=vscodes
Exec=/opt/apps/com.visualstudio,code.uos/files/code-oss/bin/code-oss
Type=Application
Terminal=false
MimeType=x-scheme-handler/vscodes;

MimeType=x-scheme-handler/vscodes是协议信息,vscodes为协议名字
Exec=/opt/apps/com.visualstudio,code.uos/files/code-oss/bin/code-oss,exec是调用的程序路径地址

2.进行注册协议到系统(root管理员权限下)
1.先把文件复制到 /usr/share/applications/  下
2.更新协议信息

update-desktop-database /usr/share/applications/

3.注册协议到系统

xdg-mime default vscodes.desktop x-scheme-handler/vscodes

3.在前端项目中调用

在项目中直接window.open(vscodes://192.168.1.10),在哪里调用就看自己项目需求

 window.open("vscodes://localhost");  //前面就是注册协议的名称,后面就是电脑ip,因为是本机就localhost就行

二  是vue中使用node  的  require("child_process");(electron中使用node)

说一下前提,浏览器本身是不支持node这样写法,会报错require找不到,我们项目是使用electron打包后桌面程序的,所以也就是vue项目在electron中使用node

1.window.openVslocalApp只是我写到window的方法,方便在vue项目中直接window调用;里面是node调用本地程序;写好之后vue项目打包dist

window.openVslocalApp = function (e) {
  // window.open("vscodes://192.168.1.10");
  // return;
  const { spawn } = require("child_process");
  // 调用本地应用程序
  const localApp = spawn(
    "/opt/apps/com.visualstudio,code.uos/files/code-oss/bin/code-oss"
  );

  // 监听应用程序的输出
  localApp.stdout.on("data", (data) => {
    console.log(`stdout: ${data}`);
  });

  // 监听应用程序的错误输出
  localApp.stderr.on("data", (data) => {
    console.error(`stderr: ${data}`);
  });

  // 监听应用程序的退出事件
  localApp.on("close", (code) => {
    console.log(`子进程退出,退出码 ${code}`);
  });
};

2.使用electron(可以参考我的上一篇electron使用事项)

我们用的国产化申威龙芯,在自己搞electron还得在打包适配对于我们太麻烦了,就直接在龙芯申威社区下载electron,把里面配置项目文件改了就行

Electron | 龙芯开源社区 (loongnix.cn)

安装他们步骤安装好后主要找到electron里面resources里default_app.asar包里面就是放的展示项目,(asar操作看我另一个文档asar命令)

3.把前端dist包放入里面

4.修改electron的default_app.js中配置,不然node语法不支持

5.修改main.js引入路径,原本是index.html,改为知道前端包dist路径里面

6.修改后重新打成asar包,把原本electron里面的替换掉重新运行打开

  • 32
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值