说明:本地exe是我们自己开发的,会在注册表里写清楚URL Protocol,并且提供端口号给js
思路:检测本地exe是否运行,通过HTTP 协议向本地exe发请求,第一次请求失败时假定是exe没有开启,浏览器端提示开启exe(使用URL Protocol),继续请求,如果连续很多次请求失败则认定没有安装exe提示安装,如果成功则证明exe已开启。
var startPrintService = function() {
var started = false;
var count = 20; //当失败时循环开启的次数,可适当减少
var timeout = 3000;
var scanningServiceUrl = "http://127.0.0.1:9085/Service/Init"; //和exe交互时提供的端口号和服务接口
//定时器函数
var interval = setInterval(function() {
printService.init(null, scanningServiceUrl,
//onsuccess时传入函数
function() {
clearInterval(interval);
// alert("安装了并打开");
},
// //onfail时传入函数,重复执行StartWebScanningService()
function() {
//第一次请求失败时浏览器url protocol
if (!started) {
started = true;
window.location.href = "URL Protocol协议名";//注册表相关
}
//循环count次后还是failed则提示没有安装
if (count-- == 0) {
clearInterval(interval);
}
});
}, timeout);
};
startPrintService();