NSExtensionContext openURL在Mac OS X Today窗口小部件上不起作用 [英] NSExtensionContext openURL not working on Mac OS X Today Widget

查看:231
本文介绍了NSExtensionContext openURL在Mac OS X Today窗口小部件上不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

No matter what I do, the following code just returns 'Success: 0' (i.e., it won't launch the hosting app):

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

如果我直接在Safari中尝试myapp://launch URL,它将起作用并启动我的应用程序.但是,Today Widget拒绝启动它.它已经沙盒化了,我也检查了外向连接"功能,但是没有运气.我需要做些什么才能使其正常工作?

If I try the myapp://launch URL directly in Safari, it works and launches my app. However the Today Widget refuses to launch it. It's sandboxed and I've checked 'Outgoing Connections' capabilities ON as well, but no luck. Anything I need to do to get it to work?

推荐答案

奇怪的是,只有在使用NSWorkspace的情况下,它才能正常工作.为了确保这与错误无关,我将代码更改为执行以下操作:

Strangely I got it working only if I used NSWorkspace. To ensure this isn't something related to a bug, I've changed my code to do the following:

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

这篇关于NSExtensionContext openURL在Mac OS X Today窗口小部件上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆