作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将自定义协议(protocol)处理程序连接到我在 OSX 上的应用程序,以便我可以进行测试://参数
在我的 plist 中,我有以下内容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLIconFile</key>
<string></string>
<key>CFBundleURLName</key>
<string>test</string>
<key>CFBundleURLSchemes</key>
<array>
<string>test</string>
</array>
</dict>
</array>
这成功启动了应用程序,但我的参数列表始终为空。为什么是这样?
在幕后,它启动了一个 Java\Scala 应用程序,主要方法是:对象 LoadJS { def main(args: Array[String]) {
我可以在命令行上使用“打开”命令时传入参数。在 Chrome 和 Firefox 上都试过,但都可以。
有什么想法吗?
谢谢
本
最佳答案
URL 不作为参数传递。相反,您的应用程序已启动,然后收到类 kInternetEventClass
和 ID kAEGetURL
的 AppleEvent。这篇描述如何使用您自己的 Objective C 协议(protocol)的帖子可能有助于理解它的工作原理:
How do you set your Cocoa application as the default web browser?
为了从 Java/Scala 实际处理这个事件,您需要进行更多研究,也许还需要编写 native 代码……查看 Apple's ApplicationAdapter类,它允许您处理一些基本的 AppleEvents,如打开、重新打开、关于等;但不幸的是,与 URL 相关的事件不是。在 this forum ,有人报告说是用 JNI 做的。
关于java - 自定义协议(protocol)处理程序未在 OSX 上传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953716/
我是一名优秀的程序员,十分优秀!