Appearance
EKEY控制相关属性
EkeyType
说明:
数值型;可读写;支持EKEY的类型。
语法:
javascript
// 设置
Obj.EkeyType = 1; // 1-15
// 读取
var ekeyType = Obj.EkeyType;
HTML参数设置:
html
<param name="EkeyType" value="1" />
EKEY类型对照表:
值 | EKEY类型 | 说明 |
---|---|---|
1 | 海泰 | 海泰EKEY |
2 | 明华 | 明华EKEY |
3 | 大明五洲 | 大明五洲EKEY |
4 | 飞天epas3000 | 飞天epas3000 |
5 | 飞天(深圳CA) | 飞天(深圳CA) |
6 | 九思泰达(深圳CA) | 九思泰达(深圳CA) |
7 | 飞天epas2000 | 飞天epas2000 |
8 | 华申华大 | 华申华大EKEY |
9 | 东方中讯 | 东方中讯EKEY |
10 | 握奇 | 握奇EKEY |
11 | 贵州黔南HTK | 贵州黔南HTK |
12 | 飞天(上海格尔) | 飞天(上海格尔) |
13 | 飞天(坚石诚信) | 飞天(坚石诚信) |
14 | 龙脉 | 龙脉EKEY |
15 | 龙脉天威定制 | 龙脉天威定制 |
使用示例:
javascript
// 设置海泰EKEY类型
Obj.EkeyType = 1;
// 设置明华EKEY类型
Obj.EkeyType = 2;
// 设置飞天epas3000类型
Obj.EkeyType = 4;
// 读取当前EKEY类型
var currentType = Obj.EkeyType;
console.log("当前EKEY类型:", currentType);
IsCheckEkey
说明:
布尔型;可读写;读取/设置文档控件是否检查EKEY及驱动文件。默认值为false,表示不检查。
语法:
javascript
// 设置
Obj.IsCheckEkey = true; // 或 false
// 读取
var checkEkey = Obj.IsCheckEkey;
使用示例:
javascript
// 启用EKEY检查
Obj.IsCheckEkey = true;
// 禁用EKEY检查
Obj.IsCheckEkey = false;
console.log("EKEY检查状态:", Obj.IsCheckEkey);
注意: 必须先设置本属性值为True后,IsEkeyConnected属性才会去检测是否有EKEY连接到计算机。否则IsEkeyConnected属性会永远返回False。
IsEkeyConnected
说明:
布尔型;只读;判别NTKO EKEY是否已经连接到计算机。如果已连接返回true,否则返回false。
语法:
javascript
// 读取
var isConnected = Obj.IsEkeyConnected;
使用示例:
javascript
// 检查EKEY连接状态
var isConnected = Obj.IsEkeyConnected;
if (isConnected) {
console.log("EKEY已连接到计算机");
} else {
console.log("EKEY未连接到计算机");
}
EkeySN
说明:
String型字符串;只读;获取系统连接的EKEY的序列号。如果没有EKEY连接到系统,返回空值。
语法:
javascript
// 读取
var ekeySN = Obj.EkeySN;
使用示例:
javascript
// 获取EKEY序列号
var ekeySN = Obj.EkeySN;
if (ekeySN) {
console.log("EKEY序列号:", ekeySN);
} else {
console.log("未检测到EKEY或序列号为空");
}
综合使用示例
EKEY初始化配置
javascript
// 配置EKEY相关属性
function configureEkey() {
try {
// 设置EKEY类型(海泰)
Obj.EkeyType = 1;
// 启用EKEY检查
Obj.IsCheckEkey = true;
console.log("EKEY配置完成");
console.log("EKEY类型:", Obj.EkeyType);
console.log("EKEY检查状态:", Obj.IsCheckEkey);
} catch (error) {
console.error("EKEY配置失败:", error.message);
}
}
EKEY状态检查
javascript
// 检查EKEY状态
function checkEkeyStatus() {
// 确保启用了EKEY检查
if (!Obj.IsCheckEkey) {
Obj.IsCheckEkey = true;
console.log("已启用EKEY检查");
}
// 检查EKEY连接状态
var isConnected = Obj.IsEkeyConnected;
var ekeySN = Obj.EkeySN;
console.log("EKEY状态检查:");
console.log("连接状态:", isConnected ? "已连接" : "未连接");
console.log("序列号:", ekeySN || "无");
return {
isConnected: isConnected,
serialNumber: ekeySN
};
}
EKEY类型选择器
javascript
// 动态设置EKEY类型
function setEkeyType(typeName) {
var typeMap = {
'海泰': 1,
'明华': 2,
'大明五洲': 3,
'飞天epas3000': 4,
'飞天(深圳CA)': 5,
'九思泰达(深圳CA)': 6,
'飞天epas2000': 7,
'华申华大': 8,
'东方中讯': 9,
'握奇': 10,
'贵州黔南HTK': 11,
'飞天(上海格尔)': 12,
'飞天(坚石诚信)': 13,
'龙脉': 14,
'龙脉天威定制': 15
};
var typeValue = typeMap[typeName];
if (typeValue) {
Obj.EkeyType = typeValue;
console.log("EKEY类型已设置为:", typeName);
return true;
} else {
console.log("未知的EKEY类型:", typeName);
return false;
}
}
// 使用示例
setEkeyType('海泰');
setEkeyType('明华');
setEkeyType('飞天epas3000');
完整的EKEY管理
javascript
// 完整的EKEY管理功能
function manageEkey() {
try {
// 1. 设置EKEY类型
Obj.EkeyType = 1; // 海泰
// 2. 启用EKEY检查
Obj.IsCheckEkey = true;
// 3. 等待一段时间让系统检测
setTimeout(function() {
// 4. 检查连接状态
var isConnected = Obj.IsEkeyConnected;
var ekeySN = Obj.EkeySN;
if (isConnected) {
console.log("EKEY管理成功:");
console.log("类型:", Obj.EkeyType);
console.log("连接状态: 已连接");
console.log("序列号:", ekeySN);
} else {
console.log("EKEY未连接,请检查:");
console.log("1. EKEY是否插入");
console.log("2. 驱动是否安装");
console.log("3. EKEY类型是否正确");
}
}, 1000);
} catch (error) {
console.error("EKEY管理失败:", error.message);
}
}
属性分类总结
分类 | 属性 | 功能 | 类型 | 说明 |
---|---|---|---|---|
EKEY类型 | EkeyType | 设置EKEY类型 | Integer | 1-15,对应不同厂商 |
检查控制 | IsCheckEkey | 启用/禁用EKEY检查 | Boolean | 必须为true才能检测连接 |
连接状态 | IsEkeyConnected | 检查EKEY连接状态 | Boolean | 只读,是否已连接 |
序列号 | EkeySN | 获取EKEY序列号 | String | 只读,EKEY的唯一标识 |
EKEY类型详细说明
厂商 | 值 | 产品名称 | 适用场景 |
---|---|---|---|
海泰 | 1 | 海泰EKEY | 通用场景 |
明华 | 2 | 明华EKEY | 金融行业 |
大明五洲 | 3 | 大明五洲EKEY | 政府机构 |
飞天 | 4-7, 12-13 | 飞天系列 | 多种CA场景 |
九思泰达 | 6 | 九思泰达(深圳CA) | 深圳地区 |
华申华大 | 8 | 华申华大EKEY | 特定行业 |
东方中讯 | 9 | 东方中讯EKEY | 企业应用 |
握奇 | 10 | 握奇EKEY | 高安全场景 |
龙脉 | 14-15 | 龙脉系列 | 定制化应用 |
使用流程
1. EKEY初始化阶段
javascript
// 初始化EKEY设置
function initializeEkey() {
// 设置EKEY类型
Obj.EkeyType = 1; // 根据实际使用的EKEY类型设置
// 启用EKEY检查
Obj.IsCheckEkey = true;
console.log("EKEY初始化完成");
}
2. EKEY检测阶段
javascript
// 检测EKEY状态
function detectEkey() {
// 检查连接状态
var isConnected = Obj.IsEkeyConnected;
if (isConnected) {
// 获取序列号
var ekeySN = Obj.EkeySN;
console.log("EKEY检测成功,序列号:", ekeySN);
return true;
} else {
console.log("EKEY未连接");
return false;
}
}
3. EKEY使用阶段
javascript
// 使用EKEY进行签名等操作
function useEkey() {
if (detectEkey()) {
// 执行需要EKEY的操作
console.log("可以执行EKEY相关操作");
// 例如:数字签名、加密等
} else {
console.log("无法执行EKEY操作,请检查EKEY连接");
}
}
注意事项
- 检查顺序:必须先设置IsCheckEkey为true,才能正确检测EKEY连接状态
- 类型匹配:EkeyType必须与实际的EKEY硬件类型匹配
- 驱动安装:确保相应的EKEY驱动已正确安装
- 连接状态:IsEkeyConnected和EkeySN属性依赖于IsCheckEkey设置
- 序列号获取:只有在EKEY连接时才能获取到有效的序列号
- 错误处理:实现完善的EKEY检测和错误处理机制
- 兼容性:不同厂商的EKEY可能有不同的兼容性要求
错误处理
javascript
// EKEY错误处理
function handleEkeyError() {
try {
// 检查EKEY设置
if (!Obj.IsCheckEkey) {
console.log("EKEY检查未启用,正在启用...");
Obj.IsCheckEkey = true;
}
// 检查连接状态
var isConnected = Obj.IsEkeyConnected;
if (!isConnected) {
console.log("EKEY未连接,请检查:");
console.log("1. EKEY是否插入USB端口");
console.log("2. 驱动是否安装");
console.log("3. EKEY类型设置是否正确");
return false;
}
// 检查序列号
var ekeySN = Obj.EkeySN;
if (!ekeySN) {
console.log("无法获取EKEY序列号");
return false;
}
console.log("EKEY状态正常");
return true;
} catch (error) {
console.error("EKEY错误处理失败:", error.message);
return false;
}
}
最佳实践
- 类型选择:根据实际使用的EKEY硬件选择正确的类型
- 检查启用:在使用EKEY相关功能前确保IsCheckEkey为true
- 状态验证:定期检查EKEY连接状态
- 错误处理:实现完善的EKEY检测和错误处理机制
- 用户提示:为用户提供清晰的EKEY状态提示
- 兼容性测试:在不同环境下测试EKEY功能