0

TeamViewer ボタンを Web アプリケーションに統合して、ユーザーが各ユーザーのコンピューターにインストールされた TeamViewer のローカル インスタンスを使用して、事前定義されたホストへのリモート接続を開始できるようにしたいと考えていました。ただし、これには問題があり、最初に予想したよりもはるかに複雑に思えます。

URLから呼び出しhttps://start.teamviewer.com/device/<ID>/authorization/password/mode/controlてデバイス ID を渡そうとしましたが、実際には機能します (常に新しいタブが開くのでシームレスではありません)。多くのホストで事前に入力されたパスワードを設定しています。したがって、これは時間のかかるソリューションであり、実際には理想的なアプローチではありません。

C:\Program Files (x86)\TeamViewer\TeamViewer.exe -i <ID> --Password <PASSWORD>私の他の考えは、ある種のクロム拡張機能からコマンドを呼び出そうとNativeMessagingすることでしたが、これを機能させることができないようです。

マニフェスト ファイルを作成しました。

{
  "name": "com.mycompany.myapp",
  "description": "myapp",
  "path": "C:\\Program Files (x86)\\Teamviewer\\TeamViewer.exe",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://........cnlfdm/"
  ]
}

上記のマニフェスト ファイルに対応するレジストリ エントリも作成しました。

次に、onClick() 関数から呼び出します。

var port = chrome.runtime.connectNative('com.mycompany.myapp');

port.onMessage.addListener(function(msg) {
     console.log("Received" + msg);
});

port.onDisconnect.addListener(function() {
     console.log("Disconnected");
});

port.postMessage({ text: "Hello, my_application" });

エラーが発生しますCannot read property 'sendNativeMessage' of undefined

最終的に、ユーザーが事前定義されたホストへのリモート コントロール セッションを起動し、パスワードの詳細をパススルーする (または事前に入力されたパスワードの詳細を利用する) ボタンをクリックできるようにしようとしています。

ng-click()AngularJS アプリケーション内の関数からこれを呼び出そうとしているので、これが問題に何らかの影響を与えているかどうかはわかりません。

4

0 に答える 0