163 lines
4.0 KiB
HTML
163 lines
4.0 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html lang="zh-CN">
|
||
|
|
||
|
<head>
|
||
|
<title>iView project</title>
|
||
|
<meta charset="UTF-8">
|
||
|
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
|
||
|
<link rel="stylesheet" href="/touch/dist/main.css">
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<div id="app"></div>
|
||
|
<script type="text/javascript" src="/touch/dist/vendors.js"></script>
|
||
|
<script type="text/javascript" src="/touch/dist/main.js"></script>
|
||
|
</body>
|
||
|
<script>
|
||
|
|
||
|
var kb_status = '1';
|
||
|
var kb_readStr = '';
|
||
|
var kb_isstart = false;
|
||
|
var kb_readfunc = '';
|
||
|
function start_read(func) {
|
||
|
kb_isstart = true;
|
||
|
kb_readfunc = func;
|
||
|
kb_status = '1';
|
||
|
kb_readStr = '';
|
||
|
}
|
||
|
function stop_read() {
|
||
|
kb_isstart = false;
|
||
|
kb_readfunc = '';
|
||
|
}
|
||
|
function fromKeyCode(code) {
|
||
|
if ((code >= 48 && code <= 57) || (code >= 65 && code <= 90)) return String.fromCharCode(code);
|
||
|
var keys = {
|
||
|
186: ';', 188: ',', 189: '-', 190: '.', 191: '/', 222: "'", 219: '[', 221: ']', 187: '=',
|
||
|
96: 'Num 0', 97: 'Num 1', 98: 'Num 2', 99: 'Num 3', 100: 'Num 4', 101: 'Num 5', 102: 'Num 6', 103: 'Num 7', 104: 'Num 8', 105: 'Num 9',
|
||
|
111: 'Num /', 106: 'Num *', 109: 'Num -', 111: 'Num /', 107: 'Num +', 13: '[enter]', 8: '[back]', 110: 'Num .'
|
||
|
};
|
||
|
if (keys[code]) return keys[code];
|
||
|
return '*err*';
|
||
|
}
|
||
|
function hashCode(strKey) {
|
||
|
var hash = 0;
|
||
|
if (strKey != null && strKey != "") {
|
||
|
for (var i = 0; i < strKey.length; i++) {
|
||
|
hash = hash * 31 + strKey.charCodeAt(i);
|
||
|
hash = intValue(hash);
|
||
|
}
|
||
|
}
|
||
|
return hash;
|
||
|
}
|
||
|
|
||
|
function intValue(num) {
|
||
|
var MAX_VALUE = 0x7fffffff;
|
||
|
var MIN_VALUE = -0x80000000;
|
||
|
if (num > MAX_VALUE || num < MIN_VALUE) {
|
||
|
return num &= 0xFFFFFFFF;
|
||
|
}
|
||
|
return num;
|
||
|
}
|
||
|
document.onkeydown = function () {
|
||
|
if (!kb_isstart) return;
|
||
|
var code = event.keyCode;
|
||
|
//[st]sduf87fjsdfysd78,526976123;
|
||
|
if (code == 16) return;
|
||
|
kb_dealKey(fromKeyCode(code));
|
||
|
}
|
||
|
|
||
|
|
||
|
function kb_dealKey(c) {
|
||
|
|
||
|
if (kb_status == '1') { //开始
|
||
|
if (c == '[') {
|
||
|
kb_status = '2';
|
||
|
} else if (c == ';') { //IC卡
|
||
|
kb_status = '6';
|
||
|
}
|
||
|
else kb_readErr(2);
|
||
|
} else if (kb_status == '2') { //读取s
|
||
|
if (c == 'S') kb_status = '3';
|
||
|
else {
|
||
|
kb_status = '1';
|
||
|
kb_readErr(3);
|
||
|
}
|
||
|
} else if (kb_status == '3') { //读取t
|
||
|
if (c == 'T') kb_status = '4';
|
||
|
else {
|
||
|
kb_status = '1';
|
||
|
kb_readErr(4);
|
||
|
}
|
||
|
} else if (kb_status == '4') { //读取]
|
||
|
if (c == ']') {
|
||
|
kb_status = '5';
|
||
|
kb_readStr = '';
|
||
|
} else {
|
||
|
kb_status = '1';
|
||
|
kb_readErr(5);
|
||
|
}
|
||
|
} else if (kb_status == '5') { //读取内容
|
||
|
if (c == ';') {
|
||
|
kb_status = '1';
|
||
|
var a = kb_readStr.split(",");
|
||
|
if (a.length == 2) {
|
||
|
var s1 = a[0].toLowerCase();
|
||
|
var hcode = a[1];
|
||
|
if (hashCode(s1) == hcode) {
|
||
|
kb_readContent(s1, 'qr');
|
||
|
} else {
|
||
|
//alert(s1+","+hcode+","+hashCode(s1));
|
||
|
kb_readErr(6);
|
||
|
}
|
||
|
} else {
|
||
|
kb_readErr(7);
|
||
|
}
|
||
|
|
||
|
kb_readStr = '';
|
||
|
} else {
|
||
|
if (c == '*err*') {
|
||
|
kb_status = '1';
|
||
|
kb_readErr(8);
|
||
|
} else {
|
||
|
kb_readStr += c;
|
||
|
}
|
||
|
}
|
||
|
} else if (kb_status == '6') { //IC卡读取内容
|
||
|
if (c == '/' || c == '[enter]') {
|
||
|
kb_status = '1';
|
||
|
|
||
|
var s1 = kb_readStr.toLowerCase();
|
||
|
kb_readContent(s1, 'ic');
|
||
|
|
||
|
kb_readStr = '';
|
||
|
} else {
|
||
|
if (c >= '0' && c <= '9') {
|
||
|
kb_readStr += c;
|
||
|
} else {
|
||
|
kb_status = '1';
|
||
|
kb_readErr(8, 'ic');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
//$("div1").innerHTML += kb_status+"<br />";
|
||
|
}
|
||
|
function kb_readErr(rs, type) {
|
||
|
kb_status = '1';
|
||
|
kb_readStr = '';
|
||
|
|
||
|
//alert(from+":读取错误!"+rs);
|
||
|
var tname = '二维码';
|
||
|
if (type && type == 'ic') {
|
||
|
tname = 'IC卡';
|
||
|
}
|
||
|
|
||
|
}
|
||
|
function kb_readContent(str, type) {
|
||
|
if (!kb_isstart) return;
|
||
|
try { kb_readfunc(type, str); } catch (e) { }
|
||
|
}
|
||
|
|
||
|
|
||
|
</script>
|
||
|
|
||
|
</html>
|