我希望将TeamViewer按钮集成到我的Web应用程序中,该按钮使我的用户可以使用在每个用户计算机上安装的TeamViewer本地实例来启动到预定义主机的远程连接。但是,这已经提出了问题,并且似乎比我最初预期的要复杂得多。
我曾尝试从URL调用https://start.teamviewer.com/device/<ID>/authorization/password/mode/control
并传入设备ID,这实际上是有效的(并非无缝地进行,因为它总是打开一个新标签页),但是,每次都会提示用户输入尽管我们已经在许多主机上设置了预输入的密码,但仍具有AD凭据。因此,这是一个耗时的解决方案,而不是理想的方法。
我的另一种想法是尝试从某种Chrome 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
。
最终,我试图允许用户单击一个按钮,该按钮将启动到预定义主机的远程控制会话,并传递密码详细信息(或使用预先输入的密码详细信息)。>
我应该提到我正在尝试从AngularJS应用程序中的ng-click()
函数调用此函数,因此我不确定这是否对该问题有影响。