gpt4 book ai didi

java - 自定义协议(protocol)处理程序未在 OSX 上传递参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:01 26 4
gpt4 key购买 nike

我正在尝试将自定义协议(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com