背景:最近项目是关于卡表bs系统,营业厅需要用读卡器读取卡信息,同事用c封装了dll文件。
一.首先想直接调用dll文件,用jna方式
public interface Dll extends StdCallLibrary {
Dll INSTANCE = (Dll) Native.loadLibrary("d:/123/SnICD", Dll.class);//加载动态库文件
//动态库中调用的方法,用数组格式接受读卡返回的数据
public int readCard(byte[] cardNo);
}
再写一个类执行接口的方法,获取读卡后信息
byte[] cardNo = new byte[8]; int result = Dll .INSTANCE.readCard(cardNo);
每个客户端电脑访问服务器都需要下载dll到本地,然后系统需要根据客户端电脑dll读卡写卡,这样根本不行啊。查询到用ActiveX插件。接下来是调用方式和注意事项。
二.在html页面上直接写
<OBJECT id="MWReaderCtl" codeBase=MwReader.cab#version=1,0,0,2(作用:说明版本号,可自动更新)
data=data:application/x-oleobject;base64,VPpLUhUXNkSyudxeJIvBwwADAADYEwAA2BMAAA==
classid=CLSID:8E06D862-4D98-11D7-A40B-5254AB51CC00></OBJECT>
在本系统中放入cab包,打开ie浏览器(注意有32位和64位区别),进行配置
1)添加信任站点
2)高级中允许运行或安装,即使签名无效
3)Internet自定义级别,有关ActiveX的设置为启用
这个时候插件自动下载安装成功。