2017-02-28 4 views
2

現在、今後のプロジェクトでElectronを評価しています。おそらく私の質問は、エレクトロンを使った人にとっては些細なことです。しかし、私はドキュメントの答えを見つけることができないか、おそらく概念を完全に把握していません。電子アプリケーションのネイティブリソースへのアクセス

自分のPCに接続されているUSBデバイス(この場合はクレジットカードリーダー)を使用する場合は、ユーザーが選択したブラウザまたはネイティブアプリからブラウザでアクセスできるウェブアプリが必要です。だから、main.jsファイルは、ページがローカル対リモートである場合、ローカルリソース(ファイル、ポートなどにアクセスすることができることに違いはありそう

win = new BrowserWindow({width: 800, height: 600}) 

    // and load the index.html of the app. 
    win.loadURL('http://www.example.com/login.html') 

などのリモートWebアプリを開くのでしょうか?他にあなたはまだ、インストールされているネイティブElectronアプリの場合のように、ファイルがローカルであったかのようにエレクトロンによって包まれたリモートホストされたWebアプリケーションからUSBポートにアクセスできますか?ローカルではあるが、ipcがまだ動作するかどうかわからない

答えて

1

デバイスのネイティブリソースにアクセスするには、BrowserWindownodeIntegrationの電子メールを有効にする必要があります。これはデフォルトですが、大きな数字のsecurity implicationsウェブからのコンテンツをノードにロードするときBrowserWindowが有効になりました。サイトがXSSによって侵害されている場合は、すべてのクライアントPCがリモートでコードを実行できるようになります。

そのため、APIを使用してバックエンドサービスを構築し、ウェブサイトにフロントエンドをホストし、アプリで分散バージョンをホストする必要があります。同じコードから2つを構築することはできます。

+0

バックエンドサービスについて詳しく説明できますか?とにかく一連のWebサービスを構築します。私はバックエンドサービスが露出を制限することを意味します。この場合、USB方式のみが許可されますか? – Jim

+0

バックエンドサービスは、サーバー/データベースからクライアントにデータを移動します。いずれかのWebサイトまたは電子アプリからブラウザにロードされます。 APIがHTMLまたはJavaScriptを送信していない場合、悪意のある人がクライアントマシンでネイティブコードを呼び出す方法が少なくなります – Tim

関連する問題