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 アプリケーション内の関数からこれを呼び出そうとしているので、これが問題に何らかの影響を与えているかどうかはわかりません。