AIR应用程序可以编程来处理URL协议吗?

问题描述:

我在Adobe AIR中编写本质上是浏览器的内容(ActionScript,而不是AJAX)。协议处理需要很多功能来实现。例如,iTunes处理itms协议;当您的朋友向您发送以“itms://”开头的链接时,只要安装它就会启动iTunes。有没有一种方法可以用这种方式编写AIR应用程序(要求AIR 2会很好),它可以成为协议的“处理程序”?AIR应用程序可以编程来处理URL协议吗?

是的。您可以使用URLLoader类以二进制形式下载数据(URLLoader.BINARY),然后根据需要对其进行解析。请参阅working with external data上的CS3文档。

+1

你误会了我;我正在寻找的是当用户在浏览器中导航到URL之前启动/调用AIR应用程序的方式,甚至在页面加载之前。 如果您在浏览器的地址栏中输入itms:// URL,它将打开/调用iTunes,因为iTunes是itms协议的处理程序。这就是我想要的;为我的AIR应用程序成为协议的处理程序。 – Rezmason 2010-03-18 13:13:23

+1

然后,您真正需要的是在浏览器中添加对自定义协议的支持。有关详细信息,请参见:http://www.codeproject.com/KB/IP/FirefoxProtocol.aspx。 – dirkgently 2010-03-18 14:25:19

+0

他了解浏览器的自定义协议。他想知道如何用空气来处理它。例如,发送什么数据,你从哪里读取数据等等。 – NKijak 2011-10-26 17:23:00

http://www.patrick-heinzelmann.de/labs/lastfm/

我不知道它究竟是如何工作的,我没有看到一个方法来下载应用程序,所以我甚至无法测试它,但也许这将有助于...

+0

这真的很有趣......而且是描述性的。我大概可以使用这些信息来找到需要编辑的文件以允许这样的事情。然后,我可以编写我的AIR应用程序来查找和编辑这些文件。由于它是一个值得信赖的应用程序,这不应该是一个问题。 – Rezmason 2010-05-22 01:25:18

退房this page。我试图找出同样的事情,但我还没有找到任何解决方案,只用空气呢。似乎您可能需要一个自定义安装程序来设置正确的注册表项,并使用代理应用程序将输入“洗”成正确的格式,然后使用正确的命令行参数启动应用程序。希望这可以有任何帮助。

没有办法,编程方式说,具体处理特定的协议。但是,有InvokeEvent。当应用程序被“调用”时,InvokeEvent将被触发,当它被明确启动或者激活了关联的文件或URL时。

将您的应用程序与特定文件类型或协议方案相关联的过程是独立的且取决于应用程序。例如,在iOS中,您需要在CFBundleURLTypes/CFBundleURLSchemes下的Info.plist中指定协议。