Node.JSネイティブアプリからChrome拡張機能へのメッセージが表示されないのはなぜですか?

レオナルド・ディピエロ

Chromeネイティブメッセージングを初めて使用し、Chrome拡張機能とネイティブアプリ間の接続を確立したいと考えています。明確にするために、拡張機能からメッセージを受信して​​処理し、他のメッセージを送り返したいと思います。しかし今、私は一方の側からそれをやろうとしています。それについて必要なすべての情報を読んだ後、私は自分の拡張機能が沈黙を保ち、受信した(潜在的に)メッセージをログに記録しないという問題に直面しました。

ポップアップ.js:

let port = chrome.runtime.connectNative("com.defus.nodejs");

console.log("Waiting for response...");

port.onMessage.addListener((response) => {
  console.log("Received: " + response);
});

マニフェスト.json(アプリケーション):

{
  "name": "com.defus.nodejs",
  "description": "Run Node.JS",
  "path": "./node.bat",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://myid/"
  ]
}

node.bat:

@echo off
node ./index.js

index.js(nodejs):— Node.jsで記述されたネイティブアプリからChrome拡張機能にメッセージを送信するにはどうすればよいですか?(リンクを使用してみましたが、https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging$compare?locale = en-US&to = 1595872&from =などのリンクを使用しましたコメントからの1593969が壊れています...)

const header = Buffer.alloc(4);
let message = "something\n";

header.writeUInt32LE(message.length, 0);

process.stdout.write(header);
process.stdout.write(message);

アプリケーションComputer\HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.defus.nodejsをregeditに登録しました。ランダムなアプリを起動するだけで、すべてが正常に機能します。

絶対パスを使用したり、jsonオブジェクト(および文字列化されたオブジェクト)を送信したり、nodejsアプリからメッセージを取得するその他のさまざまな実装を試みたりしましたが、解決策は役に立ちませんでした。「応答を待っています...」というメッセージが表示されますが、それ以上は何もありません。誰かが私が必要なことをする方法の簡単な例を提供できますか?

レオナルド・ディピエロ

他のいくつかの検索の後、私は自分の問題の解決策を見つけたようです。ここに私のステップ:

  1. HüseyinYağlıの回答のおかげで、.batファイルの名前とコマンドが同じであってはならず、スクリプトのループが発生する可能性があることに気付きました。
  2. メッセージはJSON文字列化する必要があります。

上記のルールのいずれかが守られていない場合、ネイティブアプリは機能しません。だから私は、私の名前を変更していることnode.batindex.bat、送信しようとしたlet message = JSON.stringify({ message: "something" });-そしてそれは動作します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Node.jsで記述されたネイティブアプリからChrome拡張機能にメッセージを送信するにはどうすればよいですか?

Node-red Debugノードにmqttメッセージが表示されないのはなぜですか?

ネストされたスタイルが機能しないのはなぜですか(node-sassバージョン4.13.0を使用)

Node.jsのシンプルなhttpサーバーアプリがサーバーで機能しないのはなぜですか?

Node jsネイティブモジュール、Objective-cブロックイベントリスナーからのコールバックのトリガーが機能しない

node.js:ノードjsコードからhbs htmlページへのリストの受け渡しが常に機能するとは限りません(出力が表示される場合と、空で出力が表示されない場合があります)

node.jsサーバーがサブドメインで機能しないのはなぜですか(WHMサーバーでcloudflareを使用)?

Node.js UDPクライアントがメッセージを受信しないのはなぜですか?

node.jsから「〜/」が認識されないのはなぜですか?

node.jsの `fs.existsSync`がpromiseでラップされたときにうまく機能しないのはなぜですか?

mongodb node.jsドライバーのinsertOneメソッドが挿入されるオブジェクトを変更するのはなぜですか?

node.jsがどのアプリケーションでも機能しないのはなぜですか?ELIFECYCLEエラー

Node.js:メソッドが例外をスローした場合にconsole.logメッセージが表示されない...なぜですか?

Intellij-Idea の node.js プラグインが機能しないのはなぜですか?

Chrome拡張機能からネイティブアプリにメッセージを送信するにはどうすればよいですか?

処理されたエラーに対して「(node:7424)UnhandledPromiseRejectionWarning」メッセージが表示されるのはなぜですか?

Macにインストールした後、Node.jsアプリケーションがデスクトップに表示されないのはなぜですか?

mongodbの更新操作が機能しないのはなぜですか?(Node.js)

@ node.Urlが機能しないのはなぜですか?

すべてのリスナーが削除された後、Node.jsプロセスが終了しないのはなぜですか?

node.jsで「印刷」が機能しないのはなぜですか?

Node.jsアプリのビルドがherokuで終わらないのはなぜですか?

function(){}が機能しないのに、(function(){})は機能するのはなぜですか?(Chrome DevTools / Node)

node.jsが重いCPUアプリに適さないのはなぜですか?

インストールしたNodeパッケージが見つからないのはなぜですか

Chrome拡張機能からC#で記述されたネイティブホストへのネイティブメッセージング

Node.jsでモジュールレベルのreturnステートメントが機能するのはなぜですか?

Node.jsとImageMagick、なぜサーバーがブロックされないのですか?

この基本的なNode.jsエラー処理が機能しないのはなぜですか?

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ