6

几天来我一直在学习自定义协议,但有一件事我不明白。我知道如何使用自定义协议启动应用程序,但我的问题是,
是否可以使用 javascript 在 Web 浏览器中获取应用程序响应并打印它?
例如,如果我将向协议myapp://发送请求,这将打开一个用 C# 编写的应用程序,并且该应用程序将返回字符串“这是响应”可以在 Web 浏览器中打印它吗?
如果是这样,你能帮我完成它吗?
提前致谢。

4

1 回答 1

4

互联网协议不仅仅与浏览器有关。

mailto:在电子邮件程序中引起动作(例如开始新的电子邮件)

ftp:在 FTP 程序中执行操作(可能集成到 Web 浏览器或 Windows 资源管理器中)

gopher:( 嗯,不再流行了)

myapp://将导致您的 (C#) 应用程序开始运行。那时,它可以做任何 C# 应用程序可以做的事情。它可以选择做的一件事是在磁盘上创建一个 .html 文件,然后使用

Process.Start("file://Path/To/My.html")

使默认 Web 浏览器打开它刚刚创建的文档。

更新

您当然可以让您的 myapp:// 协议处理程序向托管相关页面的 Web 服务器发送更新。我在这里的假设是 myapp:// 处理程序在客户端计算机上运行,​​并且在不同的 URL http://mydomain.com上有一个 Web 服务器,为包含 myapp:// 引用的页面提供服务。

  1. Web 服务器呈现一个包含 myapp:// URL 和 Ajax 代码的页面,以定期查询 Web 服务器以获取对部分 HTML 正文的更新。
  2. 用户点击 myapp:// URL
  3. 协议处理程序运行
  4. 协议处理程序向 Web 服务器发送更新,例如http://mydomain.com?user=joe&result=123
  5. Web 服务器用于?user=joe&result=123在下次启动 Ajax 回调时更新响应
  6. Ajax 回调从 Web 服务器获取页面的更新数据,更新页面。
于 2012-11-13T21:14:09.663 回答