在iOS 8 beta 2上,应该可以使用app扩展中的openUrl写入发行说明:
然而,当我尝试使用此API(在Xcode 6 beta 2上)时,我收到以下错误:
Beta 2是否真的解决了这个问题?
答案 0 :(得分:42)
您可以使用此代码:
[self.extensionContext openURL:url completionHandler:^(BOOL success) {
NSLog(@"fun=%s after completion. success=%d", __func__, success);
}];
API文件: openURL:completionHandler:
你也可以参考这个问题: openURL not work in Action Extension
答案 1 :(得分:1)
接受的解决方案仅适用于Today extensions
,这是Swift 3.1中的一个工作解决方案(在iOS10中测试),适用于其他扩展类型:
您需要创建自己的网址,然后将此功能添加到ViewController并使用openURL("myScheme://myIdentifier")
// Function must be named exactly like this so a selector can be found by the compiler!
// Anyway - it's another selector in another instance that would be "performed" instead.
func openURL(_ url: URL) -> Bool {
var responder: UIResponder? = self
while responder != nil {
if let application = responder as? UIApplication {
return application.perform(#selector(openURL(_:)), with: url) != nil
}
responder = responder?.next
}
return false
}
答案 2 :(得分:-2)
在iOS 11中,似乎您可以在扩展程序中使用UIApplication.sharedApplication.openURL
而不会出现问题。