微软官宣IE将“退役”,老网站如何实现在Chrome、Firefox高版本中兼容运行?

  • 一、问题

        美国微软公司为了推广其Chromium内核的Edge浏览器,在2021年5月19日突然宣布,自2022年6月15日起,绝大多数版本的Windows 10系统将不再支持IE浏览器,因此IE即将彻底退出互联网的舞台。具体来说微软决定将不再支持Windows 10所有消费者版本中的IE运行,即使用户强制启动IE也会重定向到Edge浏览器来打开网页,类似这样:

服务器和长期服务渠道(LTSC)Windows 10版本中虽说暂时不变,但谁也说不清哪天也会被取消支持了。相关详情可点击:The future of Internet Explorer on Windows 10 is in Microsoft Edge Internet Explorer 11 desktop app retirement FAQ 查看。

IE诞生于1995年,是Windows系统默认的免费网页浏览器,微软利用系统捆绑的方式很快就击败了当时收费的竞争对手Netscape。在巅峰时期,IE占据了全球桌面浏览器市场90%以上的份额,直到2013年前后谷歌浏览器逐渐成为主流。在这近20年的时间里,虽然中途有Firefox浏览器最高时抢占了约30%市场份额,但是当时不管哪个网站的发布都得把兼容IE作为重头戏进行测试。而在互联网发展的历史进程中,浏览器的功能开始时还比较简单,为了弥补浏览器自身功能的不足和提高网页中的交互体验,浏览器开发商都提供了非常开放的插件开发接口给第三方调用,其中以IE中的ActiveX控件和非IE中的NPAPI插件最为典型。第三方公司基于浏览器的插件开发接口开发了各种各样的控件或插件,典型如金融行业网银系统的安全及读卡等控件、多媒体领域的Flash Player等网页播放器,工业设计领域的dwg/dxf等图纸查看控件,因此各大下载站点类别中还单独增加了浏览器插件软件。而美国谷歌公司的Chrome浏览器为了抢占IE的用户,基于IE开发接口发布了Chrome Frame插件可将IE网页改成Chromium内核渲染显示。为简化各浏览器的插件开发,国外还诞生了非常有名的跨浏览器的开源插件框FireBreath,底层实现采用的是ActiveX控件和NPAPI插件技术,曾经流行的Java AppletUnity网页游戏引擎底层实现同样如此,有几年时间基于这两个开发的网页游戏不仅多,还很火爆,全民半夜网络偷菜成为一景。而RIA(丰富型互联网应用程序)曾经也非常受企业欢迎,AdobeFlex和微软的Silverlight作为RIA开发的两个典型代表由于门槛低、开发便捷等优势在企业信息化领域得到了广泛使用,其实现同样依赖ActiveX控件和NPAPI插件技术

然而,这些浏览器的控件或插件是否安全、是否稳定好用,完全取决于其开发商,因此时常被别有用心的人或公司利用来散发病毒、植入木马或偷取敏感信息,导致联网操作越来越不安全,浏览器本身也经常因此失去响应或崩溃。IE浏览器不得已增加了多种所谓的安全设置来限制运行ActiveX控件,这又导致体验差、实施维护难,因为大多数电脑用户也不懂得如何修改设置来确保正常运行这些ActiveX控件。如下图所示:

而谷歌公司在2015年索性宣布在其后发布的Chrome浏览器直接取消NPAPI插件的运行支持,随后Firefox新版本浏览器也跟随Chrome不再支持NPAPI插件的运行,从此所有使用了NPAPI插件技术的老网站再也无法在ChromeFirefoxOpera等高版本浏览器中运行,老网站提供商大多数就只能退而求其次,需要时只能让用户启动IE来访问。这不,时至今日即使是最有钱的金融行业各大银行,也没有解决其网银系统在ChromeFirefox等高版本浏览器中的使用问题。当用户在这些浏览器中使用遇到兼容性问题时,也只能无奈的告诉用户,请使用IE浏览器,囧。然而现在微软平地一声雷,突然宣告IE即将寿终正寝,比如大多属于公共服务的银行、工商、税务、教育等老网站及OAERP等企业信息化系统还不得不继续提供服务,这就面临再无合适浏览器可用的窘境,现在是迫切需要一个具有良好兼容性、稳定可行的主流技术方案来彻底解决此问题的时候了。

二、     现有方案

结合当前各方面的信息,现有解决方案大体上有如下几类:

1.       以不变应万变方案,继续当鸵鸟,不升级操作系统和浏览器版本,避免无法使用的情况出现。虽然说这样也不是不可以,但会面临巨大的安全风险,因为使用的陈旧操作系统如Windows 7或低版本浏览器被发现和公开的漏洞越来越多且无法修复,随时可能被攻击或被利用导致业务系统停止运行和丢失敏感数据。况且此方案只适用于企业内部电脑数量少且固定的场景。对于类似网银这样为公众服务的网站或终端请求电脑数量多又经常变动的网站,用户的电脑操作系统和浏览器版本往往是不可控的,只能尽量主动去适配用户的电脑环境确保可用,否则每人一口唾沫也会把客服人员淹死。或许你会说让用户全部切换用手机APP或传统桌面客户端就行了,不再提供桌面网页版,暂且不说这种躲猫猫的懒政行为会对企业形象造成巨大伤害,企业网银的桌面网页版总不能也取消支持吧,因为在企业内网中使用桌面电脑的比例比较高,移动端由于屏幕大小所限或安全因素考虑,始终还是少数,而传统桌面客户端开发、部署、维护等又是个大麻烦。还有就是业务系统所用的电脑,时间长了可能坏掉或需要增加数量来使用,而这些新购电脑往往安装的是当前主流的操作系统,说不定哪天就无法降级安装老版系统来使用了。在20211月份就发生了一起因新购电脑自动安装了被Adobe公司突然停用的Flash Player软件版本导致大连车务段的现在车系统无法正常使用的事故,引起了广泛的舆论关注和网民的群嘲,幸运的是这些新购电脑还能安装旧版系统降级使用,但问题并未得到根本解决。

2.       采用浏览器扩展方案,比如ChromeEdge等浏览器上的扩展程序商店中,可以下载安装国外开发商提供的IE Tab,但其商业用途是收费的。通过此扩展程序,可以在浏览器标签页中把某个网页整体用IE内核渲染显示,据统计这是在Chrome程序商店中付费用户最多的扩展,可见需求还挺强烈。不过由于国内的特殊网络环境,往往无法直接在线下载完成安装,对普通电脑用户来说这步就太难了。况且商业用途的话,企业内网常常是和外网阻断的,实施部署非常麻烦,而且网页需要切换到IE内核渲染时还需要用户手工点击一下,体验还是差了一些,也无法满足国内自主可控的要求。其售价也不低,因为是国外开发商,沟通交流存在障碍不说,采购流程也是漫长又繁琐的。好处是不需要修改网站代码,可支持主流版本的浏览器使用。

3.       双内核浏览器方案,国产典型的如360QQ等浏览器,需要用IE内核来渲染的网页,可在地址栏右侧手工点击切换内核的闪电图标来完成重新加载显示。此方案虽然是免费的,不过代价是终端电脑用户可能会时常收到广告弹窗,防不胜防又无可奈何。这些浏览器往往也非常臃肿,因为夹带了不少和开发商利益相关的私货功能,另外其内置的Chromium内核版本往往不是最新的,也存在潜在的安全漏洞风险。最大的问题是这些浏览器在整个桌面浏览器的市场份额占比低,无法保证70%左右市场份额的Chrome浏览器可正常使用。此方案好处也是不需要修改网站代码,成本低。

4.       微软官方建议的方案,就是EdgeIE模式。笔者作为这方面的专业人士,在Edge最新的大众90版本上根据网上的相关教程也没实践出如何让某个网站用IE模式来渲染显示,诸位看官可出手试试,^_^。其复杂的设置如下图所示:

  这个Chromium内核的Edge浏览器,在微软重金推广之下,目前市场占有率也还仅仅是个位数,或许正如微软自家网页翻译服务自动译为“边缘”浏览器的意思一直这样了,想要作为主要技术方案来实施还是太勉为其难,而且Edge只能模拟IE 11,说是差不多到2029年也要取消IE模式,而在64位系统上EdgeIE模式能否加载32位的ActiveX控件也是未知数,感觉就是不想让你用起来IE模式,微软为了让客户改用Edge也是无所不用其极啊。

5.       彻底改造方案,就是将无法在Chrome等浏览器中兼容运行的程序模块,比如ActiveX控件实现的功能改用比如HTML5WebGLWebAssembly等新技术重写。然而理想是好的,现实确是非常无奈的,由于Chrome等浏览器越来越收紧其开发接口,太多想要实现的功能很难做到。即使能实现,很可能功能实现不全,另外投入大、周期长,前端网页代码需要同步调整,运行性能也是很大的问题。就拿摄像头的RTSP实时视频流播放来说,IE中调用ActiveX控件来播放延迟在毫秒级,而在Chrome中只能采用转码方案播放延迟在秒级,相差数倍,往往无法满足安防行业的要求。此外还普遍存在ActiveX控件的调用方和ActiveX控件的开发方不是一家的情况,调用方想要实现替代ActiveX控件功能更是难上加难,而想要开发方公司提供替代组件往往也不可行,开发方失联或已经关门歇业也不是啥稀罕事。

三、     新方案

综合对比上述的各种方案,您会发现没有一个方案是可以令大家满意的。想要实现一个低成本、兼容性好、高性能、易于实施的自主可控解决方案,需要另辟蹊径。这个问题的根源还是因为Chromium等内核的浏览器不再支持DLLActiveX控件等原生程序的运行,新提供的PPAPI插件技术又因为太多限制迄今为止成功案例极少,很快会被取消支持。所以突破点就在于是否能在主流的ChromeFirefox等浏览器之上实现一个通用的外接框架来支持这些原生程序的内嵌网页运行,并且可以自动响应浏览器的各种操作如窗口缩放、窗口移动、窗口关闭、网页滚动、标签页切换等。成都佐罗软件有限公司工程师依靠二十年的技术积累并经过数年技术攻关发布了成熟的半开源国产中间件软件pluginok(https://codechina.csdn.net/zorrosoft/pluginok),正好满足此需求,而且兼容性很好,是一个跨浏览器的原生小程序系统,同时提供了前端可自动安装、升级小程序的可控机制,重点还引入了调用方权限验证机制,可确保这些小程序的运行安全。这一整套技术方案具有较强的创新性和实用性,还申请了软件发现专利保护。已经有不少公司采用,有的还是上市公司,运行效果完全和以前NPAPI插件实现的一样。下面是其实现原理图:

pluginok在浏览器之外再搭建了一个和操作系统交互的通道用于支持DLLActiveX控件等原生程序的运行,完全不依赖浏览器自身的开发接口,这样就很好规避了浏览器升级可能造成技术方案失效的风险。而在浏览器中通过HTML5标准中的Web Socket技术和这个pluginok中间件及启动的原生小程序通讯,实现双向的命令请求和反馈机制。此方案的难点是要让外接的程序能够很好的模拟运行在网页中,实现内嵌网页运行的真实体验,可喜的是我们看到pluginok实现的效果令人满意,不仅仅支持有交互界面的窗口程序可内嵌运行,也可以对各种硬件设备的驱动DLL进行调用。开发商还发布了VLC网页播放小程序、桌面微软Office及金山WPS在线编辑系列小程序等,可以把WordExcel等程序窗口直接完整内嵌到Chrome网页中运行,另外还发布了PCL网页渲染小程序、AutoCAD网页小程序及Solidworks小程序,为工业互联网的蓬勃发展贡献了自己的力量。pluginok中间件的问世不仅仅是为解决老网站兼容运行的问题,而且是基于浏览器搭建了一个类似微信小程序那样的小程序生态系统,用于扩展浏览器的功能,让浏览器成为各种信息化系统集成的最佳容器,可彻底解决B/S系统的各种痛点和难点,让传统的C/S桌面程序迁移到浏览器中运行再无障碍。

具体到兼容老网站的方法,基于这个pluginok中间件提供了两种方案:第一种就是pluginok中间件搭配其官方发布的IE控件小程序,可以在Chrome等浏览器网页中通过脚本请求实现局部加载IE内核渲染的网页,成本低,前端改造小,部署可实现自主可控,这就比IE Tab扩展插件好太多了,当然缺点也是有的,这就是IE浏览器自身带来的了,加载运行时弹警告体验差、稳定性差、内存占用高,不想太折腾的老网站建议采用。第二种方案属于彻底改造方案,彻底抛弃IE内核,将原来的ActiveX控件或DLL等程序模块,基于pluginok中间件的二次开发接口封装为一个独立进程的小程序来运行。此方案前端改造大些,成本相对高,不过体验好,性能高,内存占用低,适合新开工项目采用。这两种方案都可以直接复用以前的DLLActiveX控件,无需其源码,这就大大节省了开发成本。第一种方案只需要修改网站前端代码,第二种同时还需要开发一个小程序,不过这个开发还是比较容易的,看介绍提供的是COM组件的友好接口,也可以委托开发,只是多一点成本,至少技术上是完全没问题的。

四、     总结

一个好的技术实施方案,首先是要满足客户的刚性需求,其次是尽量降低采购、开发、实施及维护的总成本,再次是要有良好的兼容性和稳定性,最后需尽量确保技术方案不能因为操作系统或浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,给大家提供了基于pluginok中间件的两种新方案来解决老网站在Chrome等浏览器中的兼容使用问题,尤其适用于少改动以避免影响现有业务系统运行的场景,以供大家技术选型参考。

近期服务客户部分名单

感谢以上客户信任我们选择了PluginOK中间件软件及相关小程序,后续也将获得我们优质的售后服务!

说明:以上名单纯属随机排列,无先后之分。

PluginOK中间件版本及授权类型说明

一、 概述

PluginOK中间件为满足客户各种业务场景的需要以是否限制终端电脑使用数量来区分,提供网络版单机版授权类型,网络版可配置为SAAS服务模式;从功能复杂度和实现效果来区分,只支持DLL及弹窗小程序的是标准版支持交互窗口内嵌网页运行效果的则为高级版以上可组合成4种版本授权,分别是单机标准版、单机高级版,网络标准版,网络高级版PluginOK中间件之上可以运行本公司发布的各种小程序,也可以运行客户自行开发的小程序,根据业务系统的需要可对这些小程序进行组合授权,为了确保中间件及小程序的运行安全,未授权的小程序,是不允许被启动运行的。

二、 详情

网络版授权费用相对较低,但需绑定某个服务器使用,终端电脑使用数量受限默认报价提供100个电脑终端使用权限;而单机版授权费用高,终端电脑使用数量不受限。简单说,项目类需求建议采购网络版授权,产品类建议采用单机版授权如需支持内嵌网页运行效果则需要购买高级版授权PluginOK中间件作为跨浏览器的原生小程序系统,是支持运行各种各样小程序中间件本身的授权只需要购买一次,当需要授权运行多个小程序时,只需增加具体小程序的费用即可。此外本公司为满足大多数客户的实际需求,已针对多个典型应用场景分别开发了对应的小程序版本,如文件操作小程序、IE控件小程序、VLC网页低延迟播放小程序、桌面Office网页在线编辑小程序、Autodesk二维工程图小程序Solidworks三维工程图小程序、点云数据网页渲染PCL小程序等,这些官方小程序一般不提供单机版授权除非是HTTPS网站绑定指定子域名的SSL证书来使用。第三方基于单机版开发小程序时,如主要功能和上述小程序重叠时,仅限于第三方系统使用,不得搭配PluginOK中间件授权再对外进行转售

三、 单机硬件版

由于单机版一般是不限制终端电脑使用数量的,授权价格相对网络版来说是贵一些的,因此针对部分能够提供设备唯一编号接口的情形,本公司特别推出单机硬件版授权模式,授权费用标准向网络版看齐。给实施现场分发程序包进行安装时,需提前把涉及设备的唯一编号提供给本公司制作授权文件,此类设备对应的小程序开发必须委托给本公司进行,并且不提供小程序的源代码。

四、 如何选择

首先,需要确认是只需购买标准版授权,还是需要购买高级版授权;其次,根据现场需求,统计需安装PluginOK中间件的终端电脑数量和了解网络是否畅通;再次,结合本公司的报价和贵公司准备投入的经费来匹配对应版本的授权。PluginOK中间件提供了按年付费的授权模式,也提供长期授权模式(100),如客户现场是内网并对稳定性要求高,建议购买长期授权。如需要基于本公司的SDK开发自己的内嵌网页小程序类型,可先购买一年的授权费用进行开发,到可实际上线发布运行时,再补交对应年限的授权费用获得长期授权。如还有疑问,请添加微信(ZorroSoft)做进一步沟通。