2016-12-04 4 views
2

私のプロジェクトでは、ログインするためにusbkeyが必要です。 usbkeyのインターフェースはActivexです。 jqueryのように 、すぐ下のようなコード:ReactjでActiveXを使用するにはどうしたらいいですか?

<html> 
    <object style='display:none' 
     classid='clsid:28540C7-D724-4156-9E42-12BD' 
     codebase='Active/RaActive.CAB#version==-1,-1,-1,-1' 
     id='Ctrl'></object> 
    <scrpit> 
     $(document).ready(function() { 
     Ctrl.initUxtApi(); 
     } 
    </scrpit> 
</html> 

私はreactjs道にそれを変更することができますか? 次のコードは私の反応ですが、良い方法ではないと思います。

class USBKey extends Component { 

componentDidMount() { 
const Ctrl = document.getElementById('Ctrl'); 
console.log(Ctrl); 
let loginflag = -1; 
loginflag = Ctrl.initUxtApi(); 
console.log(loginflag); 
} 

activeX() 
{ 
    return {__html: '<object style=\'display:none\' 
classid=\'clsid:1221012-212-4156-9E42-121212\' ' + 
'codebase= \'/RaActive.CAB#version==-1,-1,-1,-1\' ' + 
' id=\'Ctrl\'></object>'} 
}; 

render() { 
return (
    <div> 
    <div dangerouslySetInnerHTML={this.activeX()} /> 
    </ div > 
);} 
} 

私はUsbKeyから証明書を読み、クラウドに送信します。 ちょうどこのように: Ctrl.readCert();

+0

私の英語は貧しいn私の表現を修正してください!私を助けてください、私はそれをappriceateします! –

+1

あなたの反応コードの一部や何をしようとしていますか? – Chris

+0

私はUsbKeyからActiveXを通して証明書を読みます。 –

答えて

0

免責事項、私は、ActiveXでは動作しませんが、私はあなたが何かを行うことができると信じて:

のindex.htmlを

// outside of React 
// leave this as is, it doesn't need to be inside react to use it 
// in react 
<object style='display:none' 
    classid='clsid:28540C7-D724-4156-9E42-12BD' 
    codebase='Active/RaActive.CAB#version==-1,-1,-1,-1' 
    id='Ctrl'></object> 

// Your react mount point 
<div id="app"></div> 

app.js

class USBKey extends Component { 

    constructor(props) { 
     super(props); 
     this.state = { loginFlag: -1 }; 
    } 

    componentDidMount() { 
     const Ctrl = document.getElementById('Ctrl'); 
     this.setState({ 
      loginFlag: Ctrl.initUxtApi(), 
     });   
    } 

    render() { 
     return <div>{this.state.loginFlag}</div> 
    } 
} 
関連する問題