0

ネイティブ メッセージング ホスト (EXE ファイル) と通信するページ アクション拡張機能を作成しようとしています。

拡張機能をインストールし、UI が期待どおりに動作していることを確認しましたが、EXE が開始されません。それとは別に、それを始めるために自分で何かをする必要がありますか?:

port = chrome.runtime.connectNative(hostName);

次のようにホストをレジストリにインストールしました。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo] @="C:\Users\me\Desktop\nativeMessaging\host\com.google.chrome.example.echo-win.json"

(x86 および x64 ビット バージョンのハイブが混乱しているように見えたので、これも手動で追加しました...)

ホスト マニフェスト ファイル:

{
  "name": "com.google.chrome.example.echo",
  "description": "Chrome Native Messaging API Example Host",
  "path": "native-messaging-example-host.bat",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/",
    "*"
  ]
}

内部native-messaging-example-host.batには次のものがあります:

MyExeName.exe

ご覧のとおり、他のオプションがページ アクションに適していなかった場合に備えて、 を追加"*"しました。allowed_origins

また、マニフェスト ファイル内に EXE 名を直接入れようとしましたが、やはりうまくいきませんでした。

私はまだ取得します:

Specified native messaging host not found. 

また、ProccessExplorer を使用して、Chrome が読み込まれる場合に備えて、どのアプリが読み込まれるかを確認しますが、そこにも表示されません。

奇妙なことに、私は Google のネイティブ メッセージング ホスト サンプルの変更を開始しましたが、それはアプリとして機能していたと思います。ページアクション拡張機能に変えたら動かなくなった。

ここで何が間違っているのか誰にもわかりませんか?

4

4 に答える 4

2

ロギングをオンにする以外に、sysinternals から procmon を使用するアプローチを取ることもできます。これは regmon と filemon が 1 つになったようなものなので、chrome に従ってレジストリ キーをクエリし、次にマニフェストを読み取り、実行可能ファイルを実行すると、問題が発生した場所を確認できます。

以前に問題があり、exe が実行されませんでした。上記を実行すると、キーに小さなタイプミスがあり、見逃していたことがわかりました。

ロギングを有効にするには、次を参照してください: https://www.chromium.org/for-testers/enable-loggingたとえば、次のコマンド ライン引数を使用してブラウザーを起動できます。--vmodule=extension_updater=2 --enable-logging

于 2016-07-16T06:27:46.637 に答える
1

同様の問題がありました。そして、ここでは何も役に立ちませんでした。問題が解決したのは、ホストの名前を「com.me.DbServer」から「com.me.test」に変更したことです。この変更により、すべてが突然機能するようになりました。DbServer は予約名であるか、大文字が許可されていない可能性が高いと思います。Chrome69を使用しています。

于 2018-10-21T18:33:46.590 に答える
1

同様の問題がありました。ロギングを有効にしても役に立ちませんでした。私のレジストリキーにあることが判明しました:

[HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts

EXE とパスを引用符で囲みました。たとえば、「C:\Temp\Chrome\ChromeNativeApp.exe」と C:\Temp\Chrome\ChromeNativeApp.exe のようにします。

于 2016-12-15T17:29:03.730 に答える