2014-06-22 27 views
15

Trên iOS 8 beta 2 chúng ta có thể sử dụng openURL từ tiện ích ứng dụng như ghi vào ghi chú phát hành:openURL từ App mở rộng

enter image description here

tuy nhiên

khi tôi cố gắng sử dụng API này (trên Xcode 6 beta 2) tôi nhận được lỗi sau:

enter image description here

Beta 2 thực sự cố định vấn đề này hay không?

Trả lời

41

bạn có thể sử dụng mã này:

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

tài liệu API: openURL:completionHandler:

bạn cũng có thể tham khảo cho câu hỏi này: openURL not work in Action Extension

+0

Cảm ơn bạn rất nhiều! Nó hoàn toàn hoạt động –

+0

@MassimoPiazza Loại tiện ích mở rộng nào bạn sử dụng khi thêm câu openURL? Tôi thử nó trong phần mở rộng hành động nhưng không thành công. Tôi chỉ thành công trong phần mở rộng Hôm nay. Bạn có kết quả gì? –

+0

Tôi đang làm việc trên Today Extensions –

0

giải pháp chấp nhận chỉ hoạt động trong Today extensions, một giải pháp làm việc trong Swift 3.1 (được thử nghiệm trong iOS10) cho các loại tiện ích mở rộng khác:

Bạn cần phải tạo URL của riêng bạn Scheme, sau đó thêm chức năng này để ViewController của bạn và gọi nó với 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

Trong iOS 11 có vẻ như bạn có thể sử dụng UIApplication.sharedApplication.openURL trong phần mở rộng mà không có vấn đề.

Các vấn đề liên quan