allWebPlugin中间件自动安装升级

发布于:2025-03-23 ⋅ 阅读:(37) ⋅ 点赞:(0)

应用背景

          在Web项目维护中,经常会遇到控件的安装及升级的工作。本博文将介绍如何实现allWebplugin中间件安装程序自动安装及升级。

alWebPlugin中间件核心优势

      allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefox、Edge、360等浏览器,接口调用友好、集成方便。为用户提供“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案。allWebplugin中间件已通过360安全检测,可放心使用

1、自创定位算法,实现插件与页面布局无缝衔接,极致用户体验
2、自创插件接口调用方法,保持原汁原味的接口调用及事件响应方式,轻松实现OA系统升级改造
3、支持同一页面或不同页面同时加载多个插件,适应各种复杂应用场景
4、自主创新、安全可控,不受浏览器插件技术限制,支持更多浏览器(谷歌、火狐、Edge、360浏览器等)。
5、创新沙箱机制,隔离插件与浏览器运行环境,增强插件与浏览器稳定性和安全性
6、攻克诸多技术难点,实现插件不修改、不注册也能使用,极大的降低插件开发量和维护量。

下载地址

链接:百度网盘 请输入提取码 
提取码:z3q0 

如下图所示,下载allWebPlugin-v2.0.32.0.zip安装包。

自动安装服务

 allWebplugin中间件的allWebPlugin类中IsInstall方法,可检测当前电脑是否已经部署allWebplugin中间件服务。若已经部署,则退出下载安装包。若没有部署,在需要下载allWebPlugin中间件安装包。

检测当前电脑是否部署allWebPlugin中间件

在编写自动下载安装包时,需要注意,避免使用window.open方式下载,这种方式可能会被浏览器拦击;可以使用如下动态创建a元素模拟点击下载,可有效避免浏览器拦截。具体如下:

function downloadFileV1(url,filename){
	let a = document.createElement('a');
	a.style = 'display: none';
	a.download = filename;
	a.href = url;
	document.body.appendChild(a);
	a.click();
	document.body.removeChild(a);
}

自动更新服务

allWebplugin中间件allWebPlugin类中IsNewVersion方法,可检测当前电脑版本与需要的版本是否一致,如果小于需要的版本,则返回false,说明需要更新;否则,返回true,不需要更新。当需要更新的时候,可以调用UpdateVersion方法,传入安装包url地址,自动实现安装包升级。

function awp_IsInstall(installPackageVersion,installPackageUrl){
	if(g_allWebPlugin != null){
		if(g_allWebPlugin.IsInstall() == false){
			//未安装,需要手动安装
			if(confirm("allWebPlugin中间件未安装或未启动,是否立即安装?")){
				downloadFileV1(installPackageUrl,"allWebPlugin.exe");
				return false;
			}
		}else{
			if(g_allWebPlugin.IsNewVersion(installPackageVersion) == false){
				return true;
			}else{
					alert("检测到升级包,立即升级。");
					g_allWebPlugin.UpdateVersion(installPackageUrl).then(function(data){
					if(data.code == 0)
					{	//检测是否安装成功
						var checkInstall = setInterval(function(){
							if(g_allWebPlugin.GetVersion() == installPackageVersion){
								window.location.reload();
								clearTimeout(checkInstall);
							}
						}, 1000);
					}
					else{
						downloadFileV1(installPackageUrl,"allWebPlugin.exe");//直接下载包,手动安装
					}
				}).catch(function(strErr){
					downloadFileV1(installPackageUrl,"allWebPlugin.exe");//直接下载包,手动安装
				});
				return false;
			}
		}
	}
	return false;
}