NSExtensionContext openURL无法在Mac OS X Today Widget上运行

str*_*mes 3 macos cocoa objective-c today-extension

无论我做什么,下面的代码只返回'Success:0'(即,它不会启动托管应用程序):

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

如果我在Safari中直接尝试myapp://启动网址,它可以运行并启动我的应用.然而,Today Widget拒绝启动它.它是沙箱,我也检查过'Outgoing Connections'功能,但没有运气.我需要做些什么才能让它发挥作用?

str*_*mes 5

奇怪的是,只有当我使用NSWorkspace时,我才能使用它.为了确保这不是与错误相关的东西,我已经改变了我的代码来执行以下操作:

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