2015-02-11 136 views
3

不管我做什么,下面的代码只是返回“成功:0”(即,它不会启动托管应用程序):NSExtensionContext的OpenURL不工作在Mac OS X中的Widget今天

NSURL *url = [NSURL URLWithString:@"myapp://launch"]; 
    [[self extensionContext] openURL:url completionHandler:^(BOOL success) { 
    NSLog(@"Success? %i", success); 
    }]; 

如果我直接在Safari中尝试myapp://启动URL,它工作并启动我的应用程序。然而,今日小部件拒绝发布它。这是沙箱,我也检查了“外出连接”功能,但没有运气。我需要做什么才能使它起作用?

回答

5

奇怪的是,我只有在使用NSWorkspace时才能使用它。为了确保这不是一个错误,我已经改变了我的代码,以执行以下操作:

if (![[NSWorkspace sharedWorkspace] openURL: url]) { 
    [[self extensionContext] openURL:url completionHandler:^(BOOL success) { 
     NSLog(@"Success? %i", success); 
    }]; 
    } else { 
    NSLog(@"Success!"); 
    }