2016-04-26 3 views
0

Google Chromeの拡張機能で、クライアントマシンに既にネイティブアプリがインストールされているかどうかを確認することができるかどうかを知りたい場合は、Google Chrome拡張機能は、特定のアプリがクライアントマシンにインストールされているかどうかをチェックしますか?

+0

"app"を定義します。ネイティブアプリですか? Chromeアプリですか?あなたは、アプリをコントロールしていますか(拡張機能と連携するように変更することはできますか?)あなたはそれで何をしたいですか? – Xan

+0

こんにちは、私の拡張機能は、特定のホストに行われたリクエストにカスタムヘッダーを追加します。ネイティブアプリ(Windowsフォームアプリ)の場合にのみこれらのヘッダーを追加したい場合は、クライアントマシンに既にインストールされています。 – yo2011

+0

良いです、あなたはほとんどすべての質問に答えました。最後の質問:あなたはアプリをコントロールしていますか? – Xan

答えて

1

拡張機能とネイティブアプリの両方を管理することを確立しました。

ファイルの存在をチェックするために拡張機能がファイルシステムにアクセスできないことに注意してください。おそらく、あなたはまた、それが実行されていない場合でも、アプリケーションの存在を検出し、理想的にはそれがない場合は起動することができます。

アプリがインストールされていることを確認する最も良い方法は、アプリにNative Messagingホストを提供することです。インストーラは、レジストリキーを追加して、ネイティブホストが存在していることをChromeに知らせると、そのホストに接続できます。

は今、いくつかの考慮事項があります。

  1. あなたはそれを起動しようとせずにネイティブホストの存在を確認することができません。

  2. この方法は、通信ポートが内線で開かれている間だけ有効です。

  3. 拡張機能とアプリケーション間の通信チャネルはSTDIOです。

メインのWindows Formsアプリケーションをネイティブホストとして宣言することは賢明ではありません。ネイティブメッセージングプロトコルに従って通信することができる別のユーティリティアプリを書く必要があります(「私はここにいる」と答えても)。必要に応じて、メインアプリを起動したり、必要に応じて他のチャンネルを使ってメインアプリを起動したりすることができます。ネイティブホストからメインアプリを起動し、WebSocketを使用してメインアプリを起動することもできます。

関連する問題