html实现读取读卡器,如何在web浏览器页面使用IC卡读卡器并且兼容所有浏览器
随着H5技术的不断发展与推广,H5技术被广泛用于移动设备,PC终端等众多领域。同时,越来越多的应用都基于B/S(浏览器/服务器)模式,降低开发难度的同时还能更好的普及和应用,突破了硬件设备的兼容性问题。然而,嵌入式开发的设备并没有跟上H5技术的脚步,现在很多嵌入式设备并不支持或者不能友好的支持浏览器应用。举个例子,如何在web浏览器页面使用IC卡读卡器并且兼容所有浏览器?针对这个问题,有人肯定会说利用active X控件就可以了啊!确实如果是基于IE或者IE内核的浏览器使用active X是没有任何问题,但是现在除了使用IE浏览器还有大部分使用Chrome和Firefox等多种内核和版本的浏览器,为了让嵌入式设备更好的兼容所有浏览器,我们提供了一套基于在嵌入式设备中内置WebSocket组件的方案,希望能帮助大家在解决使用浏览器集成嵌入式设备中遇到的难题,一下仅以我司智能卡读写器做详细介绍。
传统的ActiveX组件,通过javascript页面与设备进行信息交互。
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
var socket = null;
var nCommandIndex = 0;
var strIp = "";
var strPort = "";
var wsUrl = "";
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds()
+ seperator2 + date.getMilliseconds();
return currentdate;
}
function ConnectServer(){
try {
nCommandIndex = 0;
strIp = document.getElementById('strLotusCardDeviceIp').value;
strPort = document.getElementById('strLotusCardDevicePort').value;
wsUrl = 'ws://'+ strIp +':'+ strPort;
socket = new WebSocket(wsUrl);
} catch (evt) {
document.getElementById('log').innerHTML = '
'+getNowFormatDate()+'#new WebSocket error:'+ evt.data+'<>' + document.getElementById('log').innerHTML;
socket = null;
if (typeof(connCb) != "undefined" && connCb != null)
connCb("-1", "connect error!");
return;
}
socket.onopen = function ()
{
document.getElementById('log').innerHTML = '
'+getNowFormatDate()+'#连接服务器成功<>' + document.getElementById('log').innerHTML;
document.getElementById('status').innerHTML = 'Socket Open';
document.getElementById('status').className = 'online';
};
socket.onclose = function(event)
{
document.getElementById('log').innerHTML = '
'+getNowFormatDate()+'#断开连接:' + event.wasClean + '<>' + document.getElementById('log').innerHTML;
document.getElementById('status').innerHTML = 'Socket Closed';
document.getElementById('status').className = 'offline';
};
socket.onmessage = function(event)
{
var arrString;
strLastResult = event.data;
document.getElementById('log').innerHTML = '
'+getNowFormatDate()+'#收到数据:' + event.data + '<>' + document.getElementById('log').innerHTML;
// arrString = strLastResult.split(',');
// if(COMMAND_OPEN_DEVICE == arrString[0])
// {
// if(arrString.length>2) m_nHandle = arrString[2];
// document.getElementById('log').innerHTML = '
#获取设备句柄:' + m_nHandle + '<>' + document.getElementById('log').innerHTML;
// }
//document.getElementById('log').innerHTML = '
#received:' + arrString[0] + '<>' + document.getElementById('log').innerHTML;
//document.getElementById('log').innerHTML = '
#received:' + arrString.length + '<>' + document.getElementById('log').innerHTML;
};
socket.onerror = function(event)
{
document.getElementById('log').innerHTML = '
#disconnected:' + event.message + '<>' + document.getElementById('log').innerHTML;
document.getElementById('status').innerHTML = 'Socket Error';
document.getElementById('status').className = 'error';
};
}
function ExecStringCommand(strCommand) {
strLastResult = '';
nCommandIndex++;
if (socket.readyState == WebSocket.OPEN) {
socket.send(strCommand+','+nCommandIndex);
} else {
document.getElementById('log').innerHTML = '
#send failed. websocket not open. please check.<>' + document.getElementById('log').innerHTML;
}
}
function GetSocketStatus() {
if(null == socket) return "socket is null";
switch (socket.readyState) {
case socket.CONNECTING:
return "connecting";
break;
case socket.OPEN:
return "open";
break;
case socket.CLOSING:
return "closing";
break;
case socket.CLOSED:
return "closed";
break;
default:
return "undefined";
break
}
};
LotusCard WEB Socket 演示页面读卡器IP:
读卡器PORT:
状态
通信函数:1、连接服务器 2、执行字符串函数并解析结果 3、断开连接
连接服务器:
关闭连接:
获取连接状态:
获取MCU序列号:
蜂鸣:
获取M1卡号:
装载密码:
验证密码:
读数据扇区0块1:
写数据扇区0块1:
中止M1卡片:
清除日志:
日志
html实现读取读卡器,如何在web浏览器页面使用IC卡读卡器并且兼容所有浏览器相关推荐
- web端 刷卡器_新品推荐:WEB端免开发IC卡读卡器
新品推荐:WEB端免开发IC卡读卡器 为了解决IC卡读写器做WEB集成开发过程中的麻烦,建和诚达推出了一款网页版专业IC卡读卡器-WEB读卡器,可免除WEB开发使用IC卡读写器的麻烦,实现免驱动.免开 ...
- web端 刷卡器_在WEB浏览器使用IC卡读卡器的几种方案的对比
随着现在BS结构的程序越来越多,在BS结构的web浏览器中使用IC卡读卡器也就变得更常见了.在web浏览器中集成IC卡读卡器目前有以下几种方案: 1.使用只读读卡器将IC卡的卡号输入到焦点处. 2.使 ...
- PLC与IC卡读卡器
由于IC卡的便利性,IC卡的应用越来越广泛,在PLC上嵌入IC卡读卡器的案例越来越多.为了将PLC与IC卡读卡器 连接变得简单和稳定,友我科技推出了两款专门针对PLC的IC卡读卡器,使用Modbus- ...
- 跨web浏览器的IC卡读卡器解决方案
BS结构的程序,如果要与IC卡读卡器通信本身就是件不容易解决的事情.微软的activex ocx技术将这种应用限制在IE浏览器上了,不兼容其它的浏览器.而Chrome使用插件也不兼容IE和其他的浏览器 ...
- 记录一下web端调用IC卡读卡器的大致流程
总结一下web端IC卡读卡器的调用方法 公司项目中用到了IC卡,需要实现读写IC卡,并且与服务端交互.IC卡读卡器用的是德卡的D8型号,SDK可以在德卡官网找到,下载链接:德卡SDK下载. 官方提供了 ...
- IC卡读卡器web开发,支持IE,Chrome,Firefox,Safari,Opera等主流浏览 器
IC卡读卡器在web端的应用越来越多,但是早期发布的ocx技术只支持IE浏览器,使用受到了很多的限制.IC卡读卡器云服务的推 出,彻底解决了以上的局限,使得IC卡读卡器不仅可以应用在IE浏览器上,还可 ...
- web端 刷卡器_web开发与IC卡读卡器
前段时间有个项目在客户端web下使用IC卡读卡器,试了很多种方案都觉得麻烦,最后在网上找了个现成的方案,采用了YW-605HA读卡器,厂家就不说了,免得说做广告.开发起来也挺简单. 他们将IC卡读卡器 ...
- web调用IC卡读卡器开发第四章--读写IC卡数据
IC卡读卡器WEB读写IC卡数据 IC卡WEB读数据 IC卡网页自动读数据 IC卡网页写数据 采用友我科技IC卡读卡器web插件可以对普通IC卡进行读和写操作,根据实际业务需求,可以手动点击读写和在w ...
- web调用IC卡读卡器开发第三章--高频卡读卡号
高频卡介绍 读取ISO14443A卡号 读取ISO14443B卡号 ISO15693标签的寻卡操作 目前的高频智能卡分为3种,分别为ISO14443A, ISO14443B和ISO15693协议的,这 ...
最新文章
- 京东首页302 Found报错 监控宝教你如何第一时间发现
- 深入理解WMS(一):Window的创建过程
- 内存对齐与sizeof
- 【C 语言】文件操作 ( 文件加密解密 | 加密文件 )
- UE if缩进问题(转)
- Java获取近七天的数据条数,及页面实现折线图(附前后端代码)
- 《构建之法》阅读第四章、第十七章收获
- prettier 配置参数说明
- 最会数据分析的护士!全世界最有名的白衣天使是如何走上可视化之路的?
- 编程算法 - 篱笆修理(Fence Repair) 代码(C)
- 计算机系统-电路设计11-内存的内部电路实现(输入与输出同线)
- SlickEdit完美解析Qt4
- unity可以直接转h5吗_瞎折腾:用Unity撸纯HTML5移动游戏/应用
- 文本分类——NaiveBayes
- 奇奇怪怪的three.js特效(一)
- PS CS6中文如何切换成英文版界面?
- CSS/HTML制作电影网站中的电影卡片
- TPLINK AC650双频高增益无线USB网卡 TL-WDN5200H免驱版 Ubuntu16.04 安装
- 长时间看电脑的朋友,怎么保护您的眼睛
- MySQL8.0 通过data文件和SQL语句恢复数据库
热门文章
- 云计算基础课堂001 Linux系统与CentOS7的安装部署(小白向—怎么在VMware虚拟机安装基于Linux操作系统的CentOS7)
- 云-阿里云-百科:阿里云
- 方便快捷,浏览器利器——Vimium(详解)
- 求助FC上的一个c++代码实现丧心病狂的走迷宫小游戏!
- 麒麟子Cocos Creator 3D研究笔记十:【qfw】开源的Extension Pack for Cocos Creator 3D
- 干货满满的 GopherChina2021 北京大会 PPT is coming
- 【速记】Android让View的显示超出父容器
- linux 16.04 安装与使用vscode试水
- 以太网网络变压器的作用
- 咸鱼Micropython—SPI