在浏览器中启动本地应用程序。windows下可以通过Windows注册表注册
一个类协议来完成,从Web端启动(唤醒)本地App。
具体方法如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2]
@="rdp2"
"URL Protocol"="G:\\Test\\RemoteDesktopClient.Forms.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\DefaultIcon]
@="%SystemRoot%\\system32\\url.dll,0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell\open\command]
@="\"Test\\RemoteDesktopClient.Forms.exe\" \"%1\" "
上述中注册了一个rdp2的协议。
在html用的使用也很简单
<a href="rdp2://xxx">启动APP</a>
其中xxx可以写入作为本地应用程序的参数启动。据体的参数格式由本地应用程序解释
例如:
<a href="rdp2://127.0.0.1:8080&123456">启动APP</a>
注册表协议会将整个URL
作为参数1传递给本地应用程序。
void Main(string[] args){
if(args.Length > 0){
var protocalUrl = args[0];//参数为:rdp2://127.0.0.1:8080&123456
//需要本地应用程序解释参数。
}
}
当然也可以用接近于原生html的定义,例如:
<a href="rdp2://host=127.0.0.1:8080&password=123456">启动APP</a>
同样接收参数
void Main(string[] args){
if(args.Length > 0){
var protocalUrl = args[0];//参数为:rdp2://host=127.0.0.1:8080&password=123456
//需要本地应用程序解释参数。
}
}
以上关于Windows Web中启动本地应用的方法。实际使用中应该在本地应用安装时同时注册协议。
主要注意的是参数传递都是需要本地程序来处理的。并且参数只支持要给。(此处试过多个参数,但是传递不到值。望大神指教)。