一 前端方法
1.写检查的方法
新建一个protocolcheck.js文件
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);
}
};
}
}
export const openUriWithTimeoutHack = (uri, failCb, successCb) => {
var timeout = setTimeout(function () {
failCb();
handler.remove();
}, 1000);
//handle page running in an iframe (blur must be registered with top level window)
var target = window;
while (target != target.parent) {
target = target.parent;
}
var handler = _registerEvent(target, "blur", onBlur);
function onBlur() {
clearTimeout(timeout);
handler.remove();
successCb();
}
window.location = uri;
}
2. 在组件里应用
import { openUriWithTimeoutHack } from './protocolcheck.js'
// 启动模拟仿真
switchON = () =>{
// 检测是否存在exe
// HKEY_CURRENT_USER\SOFTWARE\Classes\weixin
// HKEY_CURRENT_USER\SOFTWARE\Youdao
const data = this.selectCell.getData();
openUriWithTimeoutHack(
// 'weixin://', //正常注册表名称
`putty://telnet/root@${data.ip}:8081`, //ip地址 业务需要
() => {
console.log("未安装");
const params = {
title: '消息确认',
content: '未安装,是否下载链接关系软件?',
okText: '是',
cancelText: '否',
oK: this.exportOk,
icon: false
}
showConfirm(params)
},
() => {
console.log("已安装,自动唤起");
}
);
}
<Button onClick={()=>switchON()}>打开</Button>
二:在电脑上查看注册表,并添加
1.新建一个putty.reg文件,填模板内容(以putty为例)
2.编辑内容,将软件标识和启动路径换成你自己的,保存关闭后双击运行
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\putty] // 软件标识,注册表HKEY_CLASSES_ROOT中可看
@="putty" // 软件标识
"URL Protocol"="C:\\Users\\pc\\Desktop\\putty.exe" // 软件启动路径
[HKEY_CURRENT_USER\SOFTWARE\Classes\putty\DefaultIcon] // 软件标识
@="C:\\Users\\pc\\Desktop\\putty.exe,1" //软件启动路径
[HKEY_CURRENT_USER\SOFTWARE\Classes\putty\shell] // 软件标识
[HKEY_CURRENT_USER\SOFTWARE\Classes\putty\shell\open] // 软件标识
[HKEY_CURRENT_USER\SOFTWARE\Classes\putty\shell\open\command] // 软件标识
@="\"C:\\Users\\pc\\Desktop\\putty.exe\" \"%1\"" //软件启动路径
3.win+R 输入 regedit,点确定打开注册表编辑页面
4.在弹出的注册表编辑器的HKEY_CURRENT_USER\SOFTWARE\Classes中搜索 putty,这个要确保唯一
5.在前端 windows.open("putty://") 就可以打开本地的exe程序 或者开头一里头的引用方法