2014-06-22 92 views
15

在iOS 8 beta 2版本作爲寫進發行說明它應該是可以使用的OpenURL從應用擴展:的OpenURL從應用程序擴展

enter image description here

但是當我嘗試使用此API(在Xcode中6測試版2)我得到以下錯誤:

enter image description here

Beta 2的真正修復了這個問題沒有?

回答

41

您可以使用此代碼:

[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

+0

非常感謝!它完美的工作 –

+0

@MassimoPiazza你添加openURL語句時使用了哪種類型的擴展名?我在Action擴展中嘗試,但失敗。我今天只能成功延期。你有什麼結果? –

+0

我正在做Today Extensions –

0

接受的解決方案只能在Today extensions,一Swift 3.1中的工作解決方案(在iOS10中測試)用於其他擴展類型:

您需要創建自己的URL方案,那麼這個功能添加到您的視圖控制器,並與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 
} 
0

調用它在iOS系統11似乎你可以擴展使用UIApplication.sharedApplication.openURL沒有問題。