我想知道如何将下载链接从web浏览器传递给第三方应用程序,而不是让web浏览器直接下载。当然,浏览器扩展是必需的。但我在问它的工作方式。例如,是否可以使用命令行?插座?或者有更好的方法吗?应用端和扩展端的要求是什么?此外,我正在为Mac开发,所以JavaScriptActiveX在这里不起作用。
问候
要在Safari扩展中拦截下载,可以在主HTML文件中注册接收beforeload
事件,然后在事件上调用preventDefault()
方法以禁止下载(如果您想以不同方式处理)。然后,您需要某种形式的进程间通信来将链接转发到您的应用程序,一种方法可以是创建一个触发应用程序的自定义URL方案,例如调用myapp:thelink
而不是http://thelink
,并让您的应用软件在操作系统中注册以处理myapp:
协议。。。
http://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html#//apple_ref/doc/uid/TP40009977-CH14-SW9
http://cocoadev.com/wiki/HowToRegisterURLHandler