检查是否可以从iOS今日小部件打开URL

and*_*ani 7 objective-c ios ios8-today-widget today-extension

我的问题是我无法确定是否可以从iOS小部件打开某个URL.方法canOpenURL:在今天的小部件上不可用,因为没有UIApplication类.

此外,NSExtensionContext的openURL: 方法为布尔"成功"返回YES,即使URL无效也是如此.

下面的代码进入else条件(成功BOOL始终为YES),但同时模拟器显示弹出错误,如附图中所示.

NSURL* invalidURL = [NSURL URLWithString:@"fake://blablabla"];
[self.extensionContext  openURL:invalidURL completionHandler:^(BOOL success) {
    if (success == NO) {
        DDLogWarn(@"Can't open URL: %@", invalidURL);
    }
    else{
        DDLogInfo(@"Successfully opened URL: %@",invalidURL);
    }
}];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Tom*_*ton 1

这是一个已知的错误。去年,当 iOS 8.0b5 发布时,我向 Apple 提交了这个问题(rdar://18107612),但它仍然是一个悬而未决的问题。

请通过http://bugreport.apple.com向 Apple 提交您自己的错误,并祝愿一切顺利。