1

私はネイティブメッセージングアプリに取り組んでいます。次のファイルを作成しました

1.C++ コンソール アプリ 2.JS ファイル 3. マニフェット ファイル このようなレジストリ エントリを作成しましたここに画像の説明を入力

今、行port = chrome.runtime.connectNative(hostName);でエラーが発生しています。.chrome.runtime 自体が定義されていないことに気付きました。

マニフェストジェイソン

function connect() {
  //var m1 = chrome.runtime.getManifest();
  var hostName = "NM1";
  var t1 = chrome;
  appendMessage("Connecting to native messaging host <b>" + hostName + "</b>")    

  port = chrome.runtime.connectNative(hostName);
  port.onMessage.addListener(onNativeMessage);
  port.onDisconnect.addListener(onDisconnected);
  updateUiState();
}

main.js

function connect() {
  //var m1 = chrome.runtime.getManifest();
  var hostName = "NM1";  
  appendMessage("Connecting to native messaging host <b>" + hostName + "</b>")

  port = chrome.runtime.connectNative(hostName);
  port.onMessage.addListener(onNativeMessage);
  port.onDisconnect.addListener(onDisconnected);
  updateUiState();
}
4

1 に答える 1

5

拡張機能内で JavaScript を実行していない場合、おそらくこのエラーが発生します。Chrome ランタイムはその外側には存在しません。また、インジェクションを介して JavaScript を実行している場合、ランタイムはそこに存在しません。

さらに、manifest.json にnativeMessagingパーミッションを含めることを忘れないでください。

"permissions": [
    "nativeMessaging"
]
于 2013-11-07T19:49:03.840 に答える