当前位置: 首页 > 面试题库 >

通过注册的URL方案启动OS X应用程序时,如何访问完整的URL?

米楚青
2023-03-14
问题内容

我正在使用Cocoa应用程序进行工作,该应用程序使用具有自定义方案的URL启动/激活,该自定义方案已在Info.plist文件中注册,如下所示:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>Open myscheme:// URLs</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>myscheme</string>
        </array>
    </dict>
</array>

我的问题是,一旦启动或激活该应用程序,我如何知道启动该应用程序的URL?在iOS上,使用UIApplicationDelegate上的-application:openURL:sourceApplication:annotation:方法很容易,因为它是通过NSURL实例传递的。

我希望能够使用myscheme:// do / something / awesome之类的URL将数据传递到我的应用程序中


问题答案:

在您的应用程序委托的中-applicationWillFinishLaunching:,执行以下操作:

[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleAppleEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];

并且handleAppleEvent:withReplyEvent:应如下所示:

- (void)handleAppleEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent {
    NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    // do something with the URL string
}


 类似资料:
  • 我尝试使用本地主机url访问我的endpoint——http://localhost:8080/这是我的Application.java文件 这是我的终点 我试着用这个网址http://localhost:8080/all

  • 我有一个JUnit测试,它启动了我的spring boot应用程序(Application.java)。 如果我运行JUnit测试,应用程序可以成功启动,但是不能通过url访问 应用程序日志: 当我试图通过url访问应用程序时http://localhost:8080/process该网站称无法访问。

  • 我正在尝试发布我的第一个Android应用程序,以发送给一些测试人员。但是,我遇到了一个问题。当您退出应用程序,然后通过其图标启动它重新进入它时,它会重新启动整个应用程序,而不是返回到其以前的位置。即使您在退出后立即重新进入,也会发生这种情况。但是,如果我按住主屏幕按钮并通过最近的应用程序列表启动它,则不会发生这种情况。 我在网上搜索过其他有这个问题的人,只有少数人,但没有人能确切回答为什么会发生

  • 问题内容: 我一直在尝试在Swift的Objective-C中复制执行此操作的常用方法,以用于我正在使用的新swift应用程序。 如何在Objective- C中执行此操作已得到了很好的说明,您将获得共享的Apple事件管理器和调用方法,以将函数注册为具有事件id 的事件类的处理程序。 因此,我正在尝试将此代码添加到全新项目中的模板AppDelegate.swift中,以执行相同的操作: 据我所知

  • 显示 “无法导入资源”@AcmeDemoBundle/Controller/SecuredController。php“from”D:/UserData/WWWRoot/Symfony/app/config/routing。yml”。确保“AcmeDemoBundle/Controller/SECUEDCONTROLLER”。php“bundle已正确注册并加载到应用程序内核类中。” 这是我的 处

  • 我有一个spring启动应用程序,我需要通过进入文件夹目录并通过命令行启动我的web应用程序来启动它。我有一门课叫应用。java及其内部代码如下所示。 我设置了类路径,然后试图运行命令"",但我得到了这个错误消息""