一段代码实现海康威视发卡器(DS-K1F100-D8E)支持BS模式

本文介绍如何在BS模式下,利用特定代码实现在HTML页面中连接海康威视DS-K1F100-D8E发卡器,通过IE浏览器进行读卡写卡操作,提供一种服务器调用本地读写器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海康威视BS模式发卡器(DS-K1F100-D8E)

通常情况下都是CS模式连接读写器实现读卡写卡等操作,由于bs模式如按照正常模式连接读写器会导致连接失败,一般情况下服务器是无法调用本地读写器或发卡器,此代码则实现了bs模式下HTML当前页可以连接本地读写器,通过这种方式实现,但是仅限于IE浏览器下。其它浏览器不兼容,大家可以自己测试。

  1. 发卡器关联classid加载
<object id="readcard" classid="clsid:A233ADFA-773C-4EEC-B210-D0959EE7C3A7" style="width: 0;height: 0;"></object>
  1. 需要调用时触发的事件,此处我是页面加载时调用发卡器,所以初始化直接执行
$(document).ready(function() {
				var isBound = '${temporaryCard.isBound}';
				if(isBound == 1){
					return false;
				}
				var temporaryCard = '${temporaryCard}';
				var inited = false;
				try{
					if(!inited){
						readcard.InitializeCardReader('<?xml version="1.0"?><PARAMS><READERTYPE>6</READERTYPE><CMCTYPE>0</CMCTYPE><SERIALPORT>1</SERIALPORT > <RATE>19200</RATE><TIMEOUT>200</TIMEOUT><BEEP>undefined</BEEP><CARDTYPE>0</CARDTYPE><CARDNOTYPE>0</CARDNOTYPE></PARAMS>');
						inited = true;
					}

					var str = $('#cardNumberInput').val();
					if(str == 'undefined' || !str || !/[^\s]/.test(str)){
						readcard.StartAutomaticallyMode();
						readcard.SetCbCardSeriaNo(function(a) {
							if(a!=undefined&&a!=null&&a!=''){
								$('#cardNum').val(a);
								readcard.StopAutomaticallyMode();
							}
						})
					}
				}catch(e){
					inited = false;
					jp.error("请下载读卡器控件并以管理员身份运行IE浏览器使用读卡器"+'<a href="${ctxStatic}/software/OcxCardSetup.exe">下载控件</a>');
					console.error(e);
				}
			})

jp可以直接换成layer,也可以自定义框架
$(’#cardNum’).val(a);
a为发卡器获取到的卡号,其它就不截图了,这个百分之百IE浏览器完全可以正常运行

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值