1

基本的に私がやりたいことは、常に開いたままにし、Chrome のネイティブ メッセージングをリッスンするスレッドを持つアプリケーション (単一プロセス) を用意することです。

私の現在の理解では、Chrome はネイティブ メッセージごとに個別のプロセスを起動します。Mutex を使用して 1 つのプロセスを作成すると、標準入力をメイン プロセスに渡すことができなくなります。これは、最初に適切なパラメーターを使用してプロセスを再度起動する必要があるためです。Chromeはおそらくこれを同様に行うため、複数のプロセスがあります。

Chromeのメッセージのメインプロセスに通知するために、ソケットまたは同様のものを介して通信する中間プロセスが必要であるように私には思えます。これは事実ですか?単一のプロセスを使用してこれを実装する方法はありませんか?

入力は大歓迎です!

また、補足として、Chrome はネイティブ メッセージング アプリ プロセスをサイレント モードで起動するようです (表示なし)。これは私が何か間違ったことをしているのですか、それともこれは正常ですか?

4

1 に答える 1

2

chrome.runtime.connectNative を使用すると、長時間実行されるネイティブ インスタンスを作成できます。次に、バックグラウンド スクリプトでその JavaScript 参照を維持して、再利用できるようにする必要があります。

マニフェスト.json;

"background": {"scripts": ["background.js"]},

background.js;

var nativePort = null;
function getNativePort(){
  if (nativePort == null)
    nativePort = chrome.runtime.connectNative("...");
}

コンテンツ スクリプトからメッセージを送信する場合は、最初にそれをバックグラウンド スクリプトに転送する必要があります。

于 2015-08-28T03:37:45.947 に答える