2016-12-17 49 views
0

我有一个自定义URL方案运作良好,但有一个小问题,我希望改变......目前,入站链接被捕获并在下面的代码(所以,一切都在这里好)处理:macOS自定义urlscheme,不要让应用程序最前端的应用程序?

- (void) handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent 
{ 
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; 
    //I parse and deal with the url here// 
    } 

是否有可能避免我的应用程序成为最前面的应用程序?无论何时收到网址,我的应用程序已经打开,因为我从这个应用程序发起了通信,并且只是在听取回复。但是,有时候这个调用是通过NSTimer进行的,所以我的应用程序可能会也可能不是最前面的应用程序。如果我现在说通过让我的应用程序从Safari中获得焦点,在Safari中浏览页面,我不想中断工作流程。我希望这是有道理的。

这可能吗?

回答

0

对于任何有兴趣的人,我都会设置一个组容器。我将我的有效载荷保存到组默认值,然后从我的帮助程序应用程序发送一个NSDistributedNotification。主应用程序获取通知,并从组默认值中读取有效载荷数据。

这样的解决方法......但作为主应用程序和辅助应用程序都是必需的沙盒。

我还发现,组默认值上的KVO在沙盒中不起作用,并且也没有在NSDistributedNOtification中发送userDictionary。 :(

我不得不写很多额外的代码,以使我的应用在沙箱中很好地播放。