2014-06-22 25 views
15

iOS'ta sürüm notları yazılır gibi uygulama uzantısı gelen OpenUrl kullanmak mümkün olmalıdır 8 beta 2: AncakopenURL dan Uygulama Uzantısı

enter image description here

Xcode 6 bu API (kullanmayı deneyin beta 2) aşağıdaki hata olsun:

enter image description here

beta 2 gerçekten bu sorunu sabit veya olmasın?

bu kodu kullanabilirsiniz

cevap

41

:

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

API belge: openURL:completionHandler:

ayrıca bu soruya bakın olabilir

: openURL not work in Action Extension

+0

Çok teşekkür ederim! Mükemmel çalışır –

+0

@MassimoPiazza openURL cümlesini girdiğinizde hangi tür Extension kullanıyorsunuz? Eylem uzantısında deniyorum, ancak başarısız oldu. Sadece bugünkü uzatmada başarılıyım. Ne sonucun var? –

+0

Şu Anda Bugün Uzantılarım var –

0

Kabul çözüm sadece Today extensions çalışır, bir Diğer uzantı türleri için Swift 3.1'de çalışma çözümü (iOS10'da test edilmiştir):

Daha sonra, Şema kendi URL oluşturmak için viewController için bu fonksiyonu eklemek ve bunu sorunsuz uzantılarında UIApplication.sharedApplication.openURL kullanabilirsiniz görünüyor iOS 11 yılında 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

ile demen gerekiyor.