如果没有ActiveX,比如斯巴达浏览器替代IE后,怎样解决B/S程序调用硬件的问题?

如果你的问题前提成立,而坚持用B/S架构,那么你的问题无解。你可以继续用IE(说会替代的是预言帝不是微软,微软自家的Sharepoint 2013连IE11支持都还没搞定呢,更别说支持斯巴达了)。或者改写成C/S的Windows商店程序。程序里面可以利用斯巴达浏览器的引擎。斯巴达浏览器是个基于Universal App Platform的应用程序(参考A first look at the Windows 10 universal app platform),所以你要用在硬件访问的话,也得写一个Universal App——斯巴达不可能在自己的清单里加上未知的硬件的ID来支持访问外接设备。在你的程序里声明设备支持可以参考Windows 应用商店设备应用 (Windows 8.1)。C/S程序建议用Javascript+HTML写,反正你的代码积累是HTML。当然你改写成WebView+其他语言也行。
■网友
现在edge浏览器已出,B/S来调用读卡器有没有替代技术呢,火狐或者谷歌浏览器的也行啊(确实不想用IE了)
■网友
【如果没有ActiveX,比如斯巴达浏览器替代IE后,怎样解决B/S程序调用硬件的问题?】 这里有个现成的通用解决方案了:wangzuohuai/WebRunLocal 而且是轻量级插件化的实现,只需要把访问硬件的模块做一个插件就行。

■网友
我现在实习的单位的上司也叫我去研究ActiveX,然而我当时说ActiveX比较过时而且不安全的时候,她就跟我说,技术没有过时不过时,只有他的固定应用场景。。她说想做一个基于B/S的来访问本地的激光打印机(打小票),RFID读卡机等等,其实我想说,既然都知道术业有专攻的话,B/S明显是不适合于访问本地硬件的,而却如此倔强于使用B/S来解决这个需求,我实在是不明白。她给的理由是,B/S结构的话,只需要更新服务器,所有的终端就都可以直接使用了,如果是做一个Native程序的话,你还要考虑更新的问题,总之说得好有道理我都无力反驳。唉……算了继续研究ActiveX去吧,我个人的角度来说,还是坚持反对这样的做法的。ActiveX就算了,还是用.NET(C#)来写啊,喂……


    推荐阅读