【问题标题】:Mac : How to get custom URI parameters in applicationMac:如何在应用程序中获取自定义 URI 参数
【发布时间】:2014-08-09 22:07:15
【问题描述】:

我已经为我的应用程序注册了一个 URI 方案“测试方案”。 我还在- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 通过 NSAppleEventManager

中注册了一个 URL 处理程序

以下代码注册 geturl 处理程序

NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];

当我第一次从浏览器打开“testscheme://some parameters”时(当我的应用程序没有运行时),操作系统会打开我的应用程序。

如果我检查命令行参数,我看不到“testscheme://some parameters”作为命令行参数。

但是,如果我在我的应用程序已经运行时打开相同的 URL,我会在使用 NSAppleEventManager 注册的 GetURL 处理程序中获得 URL。

我想在我的应用程序第一次启动时通过命令行或 GetURL 处理程序获取测试方案 url 参数。

我还检查了 Mail.app,当我在浏览器中打开 mailto:frank@wwdcdemo.example.com 时,参数正确传递给了 Mail.app。 但是,如果我同时使用 ps -ef 为 Mail.app 检查命令行参数,我看不到除应用程序路径之外的任何参数。

请帮帮我。

感谢和问候。

【问题讨论】:

  • 命令行参数有什么关系?你不是通过handleEvent 处理所有的 URL 请求吗?
  • 我不明白你的问题。
  • 很抱歉给您带来了困惑。我通过在 awakeFromNib 中注册处理程序而不是 applicationDidFinishedLaunching 来让它工作。

标签: objective-c macos uri-scheme


【解决方案1】:

我通过在awakeFromNib而不是applicationDidFinishLaunching注册GetURL eventHandler解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2015-02-10
    • 2019-02-26
    相关资源
    最近更新 更多