Web页面启动本地App(Windows)

在浏览器中启动本地应用程序。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中启动本地应用的方法。实际使用中应该在本地应用安装时同时注册协议。
主要注意的是参数传递都是需要本地程序来处理的。并且参数只支持要给。(此处试过多个参数,但是传递不到值。望大神指教)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 七月 一张白纸被染成了黑色 用最粗暴的方式 没有一点修饰 密密麻麻填充着每一个角落 生怕留出一丝白 它本来是雪白得...
    盈河王氏阅读 553评论 0 0
  • 健康智慧爱的分享第十七天:今天是比较充实的一天,一早四点多就醒了,发现有孩子在家起床的动力更足,两个孩子需要吃早餐...
    明合光阅读 306评论 0 3
  • 1.从本篇文章中我学到的最重要的概念 We should cherish the time we spend wi...
    146高家乐阅读 397评论 3 0
  • 自控力的“社会认同效应” 1-可怕的“正常人” 如果我们发现自己处于多数阵营,所有人的脑海里都会想起“还好,我跟别...
    RainbowKang阅读 415评论 0 5