export default class SoftKey3W { static Socket_UK; static url; static LastError constructor() { var isIE11 = navigator.userAgent.indexOf('Trident') > -1 && navigator.userAgent.indexOf("rv:11.0") > -1; var isEDGE= navigator.userAgent.indexOf("Edge") > -1; var u = document.URL; if (u.substring(0, 5) == "https") { if(isIE11 || isEDGE) { if(isIE11)this.url = "wss://127.0.0.1:4006/xxx"; else url = "ws://127.0.0.1:4006/xxx"; } else { this.url = "ws://localhost:4006/xxx"; } } else { this.url = "ws://127.0.0.1:4006/xxx"; } if (typeof MozWebSocket != "undefined") { this.Socket_UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { this.Socket_UK = new WebSocket(this.url,"usbkey-protocol"); } this.Socket_UK.onerror = (event) => { alert('未能连接服务程序,请确定服务程序是否安装。'); }; SoftKey3W.LastError=0 } _FindPort = function (UK,start) { var msg = { FunName: "FindPort", start: start }; UK.send(JSON.stringify(msg)); }; _FindPort_2 = function (UK,start, in_data , verf_data) { var msg = { FunName: "FindPort_2", start: start, in_data: in_data, verf_data:verf_data }; UK.send(JSON.stringify(msg)); }; _FindPort_3 = function (UK,start,in_data,verf_data) { var msg = { FunName: "FindPort_3", start: start, in_data: in_data, verf_data:verf_data }; UK.send(JSON.stringify(msg)); }; _GetVersion = function (UK,Path) { var msg = { FunName: "GetVersion", Path: Path }; UK.send(JSON.stringify(msg)); }; _GetVersionEx = function (UK,Path) { var msg = { FunName: "GetVersionEx", Path: Path }; UK.send(JSON.stringify(msg)); }; _GetID_1 = function (UK,Path) { var msg = { FunName: "GetID_1", Path: Path }; UK.send(JSON.stringify(msg)); }; _GetID_2 = function (UK,Path) { var msg = { FunName: "GetID_2", Path: Path }; UK.send(JSON.stringify(msg)); }; _sRead = function (UK,Path) { var msg = { FunName: "sRead", Path: Path }; UK.send(JSON.stringify(msg)); }; _sWrite = function (UK,InData, Path) { var msg = { FunName: "sWrite", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _sWrite_2 = function (UK,InData, Path) { var msg = { FunName: "sWrite_2", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _sWrite_2Ex = function (UK,InData,Path) { var msg = { FunName: "sWrite_2Ex", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _sWriteEx = function (UK,InData,Path) { var msg = { FunName: "sWriteEx", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _sWriteEx_New = function (UK,InData,Path) { var msg = { FunName: "sWriteEx_New", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _sWrite_2Ex_New = function (UK,InData,Path) { var msg = { FunName: "sWrite_2Ex_New", InData: InData, Path:Path }; UK.send(JSON.stringify(msg)); }; _YRead= function(Address,HKey,LKey,Path) { var msg = { FunName: "YRead", Address:Address, HKey:HKey, LKey:LKey, Path:Path }; Socket_UK.send(JSON.stringify(msg)); }; _YWrite= function(InData,Address,HKey,LKey,Path) { var msg = { FunName: "YWrite", InData:InData, Address:Address, HKey:HKey, LKey:LKey, Path:Path }; Socket_UK.send(JSON.stringify(msg)); }; static _SetBuf= function(UK,InData,pos) { var msg = { FunName: "SetBuf", InData: InData, pos:pos }; UK.send(JSON.stringify(msg)); }; static _GetBuf= function(UK,pos) { var msg = { FunName: "GetBuf", pos: pos }; UK.send(JSON.stringify(msg)); }; static _YReadEx= function(UK,Address,len, HKey,LKey,Path) { var msg = { FunName: "YReadEx", Address:Address, len:len, HKey:HKey, LKey:LKey, Path:Path }; UK.send(JSON.stringify(msg)); }; static _YWriteEx= function (UK,Address,len,HKey,LKey,Path) { var msg = { FunName: "YWriteEx", Address:Address, len:len, HKey:HKey, LKey:LKey, Path:Path }; UK.send(JSON.stringify(msg)); }; _YReadString = function (UK,Address,len,HKey,LKey,Path) { var msg = { FunName: "YReadString", Address:Address, len:len, HKey:HKey, LKey:LKey, Path:Path }; UK.send(JSON.stringify(msg)); }; _YWriteString = function (UK,InString,Address,HKey,LKey,Path) { var msg = { FunName: "YWriteString", InString:InString, Address:Address, HKey:HKey, LKey:LKey, Path:Path }; UK.send(JSON.stringify(msg)); }; _SetWritePassword = function (UK,W_Hkey,W_Lkey,new_Hkey,new_Lkey,Path) { var msg = { FunName: "SetWritePassword", W_Hkey:W_Hkey, W_Lkey:W_Lkey, new_Hkey:new_Hkey, new_Lkey:new_Lkey, Path:Path }; UK.send(JSON.stringify(msg)); }; _SetReadPassword = function (UK,W_Hkey,W_Lkey,new_Hkey,new_Lkey,Path) { var msg = { FunName: "SetReadPassword", W_Hkey:W_Hkey, W_Lkey:W_Lkey, new_Hkey:new_Hkey, new_Lkey:new_Lkey, Path:Path }; UK.send(JSON.stringify(msg)); }; _DecString = function (UK,InString,Key) { var msg = { FunName: "DecString", InString:InString, Key:Key }; UK.send(JSON.stringify(msg)); }; _EncString = function (UK,InString,Path) { var msg = { FunName: "EncString", InString:InString, Path:Path }; UK.send(JSON.stringify(msg)); }; _EncString_New = function (UK,InString,Path) { var msg = { FunName: "EncString_New", InString:InString, Path:Path }; UK.send(JSON.stringify(msg)); }; _Cal = function(UK,Path) { var msg = { FunName: "Cal", Path:Path }; UK.send(JSON.stringify(msg)); }; _Cal_New = function(UK,Path) { var msg = { FunName: "Cal_New", Path:Path }; UK.send(JSON.stringify(msg)); }; _GetProduceDate= function(UK,Path) { var msg = { FunName: "GetProduceDate", Path:Path }; UK.send(JSON.stringify(msg)); }; _SetID= function(UK,Seed,Path) { var msg = { FunName: "SetID", Seed:Seed, Path:Path }; UK.send(JSON.stringify(msg)); }; _SetCal_2 = function (UK,Key,Path) { var msg = { FunName: "SetCal_2", Key:Key, Path:Path }; UK.send(JSON.stringify(msg)); }; _SetCal_2 = function (UK,Key,Path) { var msg = { FunName: "SetCal_2", Key:Key, Path:Path }; UK.send(JSON.stringify(msg)); }; _SetCal_New = function (UK,Key,Path) { var msg = { FunName: "SetCal_New", Key:Key, Path:Path }; UK.send(JSON.stringify(msg)); }; static _SetEncBuf= function(UK,InData,pos) { var msg = { FunName: "SetEncBuf", InData:InData, pos: pos }; UK.send(JSON.stringify(msg)); }; static _GetEncBuf= function(UK,pos) { var msg = { FunName: "GetEncBuf", pos: pos }; UK.send(JSON.stringify(msg)); }; _ReSet = function (UK,Path) { var msg = { FunName: "ReSet", Path:Path }; UK.send(JSON.stringify(msg)); }; _MacAddr = function (UK) { var msg = { FunName: "MacAddr" }; UK.send(JSON.stringify(msg)); }; _GetChipID = function (UK,Path) { var msg = { FunName: "GetChipID", Path:Path }; UK.send(JSON.stringify(msg)); }; static _StarGenKeyPair= function(UK,Path) { var msg = { FunName: "StarGenKeyPair", Path:Path }; UK.send(JSON.stringify(msg)); }; static _GenPubKeyY= function(UK) { var msg = { FunName: "GenPubKeyY" }; UK.send(JSON.stringify(msg)); }; static _GenPubKeyX= function(UK) { var msg = { FunName: "GenPubKeyX" }; UK.send(JSON.stringify(msg)); }; static _GenPriKey= function(UK) { var msg = { FunName: "GenPriKey" }; UK.send(JSON.stringify(msg)); }; _GetPubKeyY = function (UK,Path) { var msg = { FunName: "GetPubKeyY", Path:Path }; UK.send(JSON.stringify(msg)); }; _GetPubKeyX = function (UK,Path) { var msg = { FunName: "GetPubKeyX", Path:Path }; UK.send(JSON.stringify(msg)); }; _GetSm2UserName = function (UK,Path) { var msg = { FunName: "GetSm2UserName", Path:Path }; UK.send(JSON.stringify(msg)); }; _Set_SM2_KeyPair = function (UK,PriKey,PubKeyX,PubKeyY,sm2UserName,Path ) { var msg = { FunName: "Set_SM2_KeyPair", PriKey:PriKey, PubKeyX:PubKeyX, PubKeyY:PubKeyY, sm2UserName:sm2UserName, Path:Path }; UK.send(JSON.stringify(msg)); }; _YtSign = function (UK,SignMsg,Pin,Path) { var msg = { FunName: "YtSign", SignMsg:SignMsg, Pin:Pin, Path:Path }; UK.send(JSON.stringify(msg)); }; _YtSign_2 = function (UK,SignMsg,Pin,Path) { var msg = { FunName: "YtSign_2", SignMsg:SignMsg, Pin:Pin, Path:Path }; UK.send(JSON.stringify(msg)); }; _YtVerfiy = function (UK,id,SignMsg,PubKeyX, PubKeyY,VerfiySign,Path) { var msg = { FunName: "YtVerfiy", id:id, SignMsg:SignMsg, PubKeyX:PubKeyX, PubKeyY:PubKeyY, VerfiySign:VerfiySign, Path:Path }; UK.send(JSON.stringify(msg)); }; _SM2_DecString = function (UK,InString,Pin,Path) { var msg = { FunName: "SM2_DecString", InString:InString, Pin:Pin, Path:Path }; UK.send(JSON.stringify(msg)); }; _SM2_EncString = function (UK,InString,Path) { var msg = { FunName: "SM2_EncString", InString:InString, Path:Path }; UK.send(JSON.stringify(msg)); }; _YtSetPin = function (UK,OldPin,NewPin,Path) { var msg = { FunName: "YtSetPin", OldPin:OldPin, NewPin:NewPin, Path:Path }; UK.send(JSON.stringify(msg)); }; _FindU = function (UK,start) { var msg = { FunName: "FindU", start: start }; UK.send(JSON.stringify(msg)); }; _FindU_2 = function (UK,start,in_data,verf_data) { var msg = { FunName: "FindU_2", start: start, in_data: in_data, verf_data:verf_data }; UK.send(JSON.stringify(msg)); }; _FindU_3 = function (UK,start,in_data,verf_data) { var msg = { FunName: "FindU_3", start: start, in_data: in_data, verf_data:verf_data }; UK.send(JSON.stringify(msg)); }; _IsUReadOnly = function (UK,Path) { var msg = { FunName: "IsUReadOnly", Path:Path }; UK.send(JSON.stringify(msg)); }; _SetUReadOnly = function (UK,Path) { var msg = { FunName: "SetUReadOnly", Path:Path }; UK.send(JSON.stringify(msg)); }; _SetHidOnly = function (UK,IsHidOnly,Path) { var msg = { FunName: "SetHidOnly", IsHidOnly:IsHidOnly, Path:Path }; UK.send(JSON.stringify(msg)); }; static ResetOrder= function(UK) { var msg = { FunName: "ResetOrder" }; UK.send(JSON.stringify(msg)); } ContinueOrder = function (UK) { var msg = { FunName: "ContinueOrder" }; UK.send(JSON.stringify(msg)); } _ComputerName= function(UK) { var msg = { FunName: "ComputerName" }; UK.send(JSON.stringify(msg)); }; SendCmdAndWait = function(IsReturnErr,fun,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10) { var UK; return new Promise((resolve, reject) => { if (typeof MozWebSocket != "undefined") { UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { UK = new WebSocket(this.url,"usbkey-protocol"); } try { UK.onopen = function() { SoftKey3W.ResetOrder(UK);// } UK.onmessage =function got_packet(Msg) { var UK_Data = JSON.parse(Msg.data); var return_value; if(UK_Data.type!="Process")return ;// switch(UK_Data.order) { case 0: { fun(UK,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10); } break; //!!!!! case 1: { SoftKey3W.LastError=UK_Data.LastError; return_value=UK_Data.return_value; if( SoftKey3W.LastError!=0){ if(IsReturnErr)return_value=SoftKey3W.LastError; } // UK.close(); resolve(return_value); } break; } } UK.onclose = function(){ } UK.onerror = (event) => { alert('未能连接服务程序,请确定服务程序是否安装。'); }; } catch(e) { alert(e.name + ": " + e.message); resolve(false); } }) } GetLastError = function() { return SoftKey3W.LastError; } FindPort = function(start) { return this.SendCmdAndWait(false,this._FindPort,start); } FindPort_2= function( start,in_data, verf_data ) { return this.SendCmdAndWait(false,this._FindPort_2,start,in_data, verf_data); }; GetVersionEx= function(KeyPath) { return this.SendCmdAndWait(false,this._GetVersionEx,KeyPath); }; GetVersion= function(KeyPath) { return this.SendCmdAndWait(false,this._GetVersion,KeyPath); }; GetID_1= function(KeyPath) { return this.SendCmdAndWait(false,this._GetID_1,KeyPath); } GetID_2= function(KeyPath) { return this.SendCmdAndWait(false,this._GetID_2,KeyPath); } GetChipID= function(KeyPath) { return this.SendCmdAndWait(false,this._GetChipID,KeyPath); }; SetWritePassword= function( W_HKey, W_LKey, new_HKey, new_LKey,KeyPath) { return this.SendCmdAndWait(true,this._SetWritePassword, W_HKey, W_LKey, new_HKey, new_LKey,KeyPath); } SetReadPassword= function( W_HKey, W_LKey, new_HKey, new_LKey,KeyPath) { return this.SendCmdAndWait(true,this._SetReadPassword,W_HKey, W_LKey, new_HKey, new_LKey,KeyPath); } SetCal_2= function( Key,KeyPath) { return this.SendCmdAndWait(true,this._SetCal_2,Key,KeyPath); } SetCal_New= function(Key,KeyPath) { return this.SendCmdAndWait(true,this._SetCal_New,Key,KeyPath); } EncString= function( InString,KeyPath) { return this.SendCmdAndWait(false,this._EncString,InString,KeyPath); } EncString_New= function( InString,KeyPath) { return this.SendCmdAndWait(false,this._EncString_New, InString,KeyPath); } Cal= function(Inbuf,KeyPath) { return SubCal(_Cal,Inbuf,KeyPath); } Cal_New= function(Inbuf,KeyPath) { return SubCal(_Cal_New,Inbuf,KeyPath) } sWriteEx= function( in_data ,KeyPath) { return this.SendCmdAndWait(false,this._sWriteEx,in_data ,KeyPath); } sWrite_2Ex= function( in_data ,KeyPath) { return this.SendCmdAndWait(false,this._sWrite_2Ex,in_data ,KeyPath); } sWriteEx_New= function( in_data ,KeyPath) { return this.SendCmdAndWait(false,this._sWriteEx_New,in_data ,KeyPath); } sWrite_2Ex_New= function( in_data ,KeyPath) { return this.SendCmdAndWait(false,this._sWrite_2Ex_New,in_data ,KeyPath); } sWrite= function( in_data ,KeyPath) { return this.SendCmdAndWait(true,this._sWrite,in_data ,KeyPath); } sWrite_2= function( in_data ,KeyPath) { return this.SendCmdAndWait(true,this._sWrite_2,in_data ,KeyPath); } sRead= function(KeyPath) { return this.SendCmdAndWait(false,this._sRead,KeyPath); } YWriteEx = function(indata, address, nlen, HKey, LKey,KeyPath) { var UK; return new Promise((resolve, reject) => { if (typeof MozWebSocket != "undefined") { UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { UK = new WebSocket(this.url,"usbkey-protocol"); } try { var i=0,order; UK.onopen = function() { SoftKey3W.ResetOrder(UK);// } UK.onmessage =function got_packet(Msg) { var UK_Data = JSON.parse(Msg.data); var return_value; if(UK_Data.type!="Process")return ;// if(UK_Data.order { alert('未能连接服务程序,请确定服务程序是否安装。'); }; } catch(e) { alert(e.name + ": " + e.message); resolve(false); } }) } YWriteString= function(InString,Address , HKey, LKey,KeyPath) { return this.SendCmdAndWait(true,this._YWriteString,InString,Address , HKey, LKey,KeyPath); } YReadEx= function(address, nlen, HKey, LKey,KeyPath ) { var outb = new Uint8Array(nlen); var UK; return new Promise((resolve, reject) => { if (typeof MozWebSocket != "undefined") { UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { UK = new WebSocket(this.url,"usbkey-protocol"); } try { var i,order; UK.onopen = function() { SoftKey3W.ResetOrder(UK);// } UK.onmessage =function got_packet(Msg) { var UK_Data = JSON.parse(Msg.data); var return_value; if(UK_Data.type!="Process")return ;// if(UK_Data.order<2) { switch(UK_Data.order) { case 0: { SoftKey3W._YReadEx(UK,address, nlen, HKey, LKey,KeyPath); } break; //!!!!! case 1: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){ UK.close();resolve(outb);return ; } i=0; SoftKey3W._GetBuf(UK,i);// } break; } } else{ SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){ UK.close();resolve(outb);return ; } outb[i]=UK_Data.return_value; i++; if( UK_Data.LastError!=0 || i>=nlen) { UK.close();resolve(outb);return ; } SoftKey3W._GetBuf(UK,i);// } } UK.onclose = function(){ } UK.onerror = (event) => { alert('未能连接服务程序,请确定服务程序是否安装。'); }; } catch(e) { alert(e.name + ": " + e.message); resolve(false); } }) return outb; } YReadString= function( Address, nlen, HKey, LKey,KeyPath) { return this.SendCmdAndWait(false,this._YReadString,Address, nlen, HKey, LKey,KeyPath); } YRead= function(Address,HKey,LKey,Path) { return this.SendCmdAndWait(false,this._YRead,Address,HKey,LKey,Path); }; YWrite= function(InData,Address,HKey,LKey,Path) { return this.SendCmdAndWait(true,this._YWrite,InData,Address,HKey,LKey,Path) }; ReSet= function( KeyPath ) { return this.SendCmdAndWait(true,this._ReSet,KeyPath); } SetCal= function( HKey, LKey, new_HKey, new_LKey, KeyPath) { return this.SendCmdAndWait(true,this._SetCal,HKey, LKey, new_HKey, new_LKey,KeyPath); } SetID= function( Seed, KeyPath) { return this.SendCmdAndWait(true,this._SetID, Seed,KeyPath); } GetProduceDate= function( KeyPath) { return this.SendCmdAndWait(false,this._GetProduceDate,KeyPath); } SetHidOnly= function( IsHidOnly, KeyPath) { return this.SendCmdAndWait(true,this._SetHidOnly, IsHidOnly,KeyPath); } SetUReadOnly= function(KeyPath) { return this.SendCmdAndWait(true,this._SetUReadOnly,KeyPath); } StarGenKeyPair = function(KeyPath) { var KeyPairInfo={ GenPriKey:"", GenPubKeyX:"", GenPubKeyY:"", } var UK; return new Promise((resolve, reject) => { if (typeof MozWebSocket != "undefined") { UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { UK = new WebSocket(this.url,"usbkey-protocol"); } try { UK.onopen = function() { SoftKey3W.ResetOrder(UK);// } UK.onmessage =function got_packet(Msg) { var UK_Data = JSON.parse(Msg.data); var return_value; if(UK_Data.type!="Process")return ;// switch(UK_Data.order) { case 0: { SoftKey3W._StarGenKeyPair(UK,KeyPath); } break; // case 1: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){UK.close(); resolve(KeyPairInfo);return ;} SoftKey3W._GenPriKey(UK); } break; case 2: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){UK.close(); resolve(KeyPairInfo);return ;} KeyPairInfo.GenPriKey=UK_Data.return_value; SoftKey3W._GenPubKeyX(UK); } break; case 3: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){UK.close(); resolve(KeyPairInfo);return ;} KeyPairInfo.GenPubKeyX=UK_Data.return_value; SoftKey3W._GenPubKeyY(UK); } break; case 4: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){UK.close(); resolve(KeyPairInfo);return ;} KeyPairInfo.GenPubKeyY=UK_Data.return_value; UK.close(); resolve(KeyPairInfo);return ; } break; } } UK.onclose = function(){ } UK.onerror = (event) => { alert('未能连接服务程序,请确定服务程序是否安装。'); }; } catch(e) { alert(e.name + ": " + e.message); resolve(false); } }) } Set_SM2_KeyPair= function(PriKey, PubKeyX, PubKeyY, SM2_UserName, KeyPath) { return this.SendCmdAndWait(true,this._Set_SM2_KeyPair,PriKey, PubKeyX, PubKeyY, SM2_UserName,KeyPath); } Get_SM2_PubKey= function(KeyPath) { return this.SendCmdAndWait(false,this._Get_SM2_PubKey,KeyPath); } GetPubKeyX= function(KeyPath) { return this.SendCmdAndWait(false,this._GetPubKeyX,KeyPath); } GetPubKeyY= function(KeyPath) { return this.SendCmdAndWait(false,this._GetPubKeyY,KeyPath); } GetSm2UserName= function(KeyPath) { return this.SendCmdAndWait(false,this._GetSm2UserName,KeyPath); } SM2_EncBuf= function( InBuf, inlen, KeyPath) { return this.SendCmdAndWait(true,this._SM2_EncBuf, InBuf, inlen,KeyPath); } SM2_DecBuf= function( InBuf, inlen, pin, KeyPath) { return this.SendCmdAndWait(true,this._SM2_DecBuf,InBuf, inlen, pin, KeyPath); } SM2_EncString= function(InString, KeyPath) { return this.SendCmdAndWait(false,this._SM2_EncString,InString, KeyPath); } SM2_DecString= function(InString, pin, KeyPath) { return this.SendCmdAndWait(false,this._SM2_DecString,InString, pin,KeyPath); } YtSetPin= function(old_pin, new_pin, KeyPath) { return this.SendCmdAndWait(true,this._YtSetPin,old_pin, new_pin, KeyPath); } YtSign= function(msg, pin, KeyPath) { return this.SendCmdAndWait(false,this._YtSign,msg, pin, KeyPath); } YtSign_2= function(msg, pin, KeyPath) { return this.SendCmdAndWait(false,this._YtSign_2,msg, pin, KeyPath); } MacAddr= function() { return this.SendCmdAndWait(false,this._MacAddr); } ComputerName= function() { return this.SendCmdAndWait(false,this._ComputerName); }; SubCal = function(Fun,Inbuf,KeyPath) { var UK;var outb = new Uint8Array(8); return new Promise((resolve, reject) => { if (typeof MozWebSocket != "undefined") { UK = new MozWebSocket(this.url,"usbkey-protocol"); } else { UK = new WebSocket(this.url,"usbkey-protocol"); } try { var i=0,order;var bIsEnc=true; UK.onopen = function() { SoftKey3W.ResetOrder(UK);// } UK.onmessage =function got_packet(Msg) { var UK_Data = JSON.parse(Msg.data); var return_value; if(UK_Data.type!="Process")return ;// if(bIsEnc) { if(UK_Data.order<8) { SoftKey3W._SetEncBuf(UK,Inbuf[UK_Data.order],UK_Data.order); return; } else{ order=UK_Data.order-8; } switch(order) { case 0: { SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){UK.close(); resolve(outb);return ;} Fun(UK, KeyPath); } break; // case 1: { SoftKey3W.LastError=UK_Data.LastError; return_value=UK_Data.return_value; if( SoftKey3W.LastError!=0){UK.close(); resolve(outb);return ;} bIsEnc=false;i=0; SoftKey3W.ResetOrder(UK); } break; } } else{ SoftKey3W.LastError=UK_Data.LastError; if( SoftKey3W.LastError!=0){ UK.close(); resolve(outb);return ; } if(UK_Data.order<8) { if(UK_Data.order>0) { outb[i-1]=UK_Data.return_value; } SoftKey3W._GetEncBuf(UK,i);// i++; } else{ outb[i-1]=UK_Data.return_value; UK.close(); resolve(outb);return ; } } } UK.onclose = function(){ } UK.onerror = (event) => { alert('未能连接服务程序,请确定服务程序是否安装。'); }; } catch(e) { alert(e.name + ": " + e.message); resolve(false); } }) } }