2014-06-22 11 views
15

auf iOS 8 Beta 2 sollte es möglich sein Openurl von App-Erweiterung zu verwenden, wie in die Release Notes geschrieben:openURL aus dem App-Erweiterung

enter image description here

aber wenn ich versuche, diese API zu verwenden (auf Xcode 6 Beta 2) bekomme ich folgende Fehlermeldung:

enter image description here

Beta 2 wirklich dieses Problem behoben ist oder nicht?

Antwort

41

Sie diesen Code verwenden können:

[self.extensionContext openURL:url completionHandler:^(BOOL success) { 
     NSLog(@"fun=%s after completion. success=%d", __func__, success); 
    }]; 

das API Dokument: openURL:completionHandler:

Sie auch auf diese Frage beziehen könnte: openURL not work in Action Extension

+0

Vielen Dank! Es funktioniert perfekt –

+0

@MassimoPiazza Welche Art von Erweiterung verwenden Sie, wenn Sie openURL Satz hinzufügen? Ich versuche es in Aktionserweiterung aber gescheitert. Ich habe nur Erfolg in Today-Erweiterung. Welches Ergebnis hast du? –

+0

Ich arbeite an Heute Erweiterungen –

0

akzeptierte Lösung funktioniert nur in Today extensions, ein Arbeitslösung in Swift 3.1 (getestet in iOS10) für andere Erweiterungstypen:

Sie benötigen eine eigene URL-Schema, dann fügen Sie diese Funktion auf Ihrem Viewcontroller und mit 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

In iOS 11 nennen zu schaffen scheint, dass Sie UIApplication.sharedApplication.openURL in Erweiterungen ohne das Problem verwenden können.