2014-06-22 7 views
15

iOS पर 8 बीटा 2 यह भी एप्लिकेशन एक्सटेंशन से openUrl उपयोग करने के लिए संभव के रूप में रिलीज नोट्स में लिखा होना चाहिए:openURL से एप्लिकेशन एक्सटेंशन

enter image description here

लेकिन जब मैं Xcode 6 पर इस एपीआई (उपयोग करने का प्रयास बीटा 2) मैं निम्न त्रुटि हो:

enter image description here

बीटा 2 वास्तव में इस समस्या का समाधान हो या नहीं?

उत्तर

41

आप इस कोड का उपयोग हो सकता है:

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

एपीआई दस्तावेज़: openURL:completionHandler:

आप भी इस सवाल का उल्लेख कर सकते: openURL not work in Action Extension

+0

बहुत बहुत धन्यवाद! यह पूरी तरह से –

+0

@MassimoPiazza काम करता है जब आप openURL वाक्य जोड़ते हैं तो आप किस प्रकार का एक्सटेंशन उपयोग करते हैं? मैं इसे एक्शन एक्सटेंशन में आज़माता हूं लेकिन असफल रहा। मैं आज ही विस्तार में सफलता प्राप्त करता हूं। आपके पास क्या परिणाम है? –

+0

मैं आज के विस्तार पर काम कर रहा हूं –

0

स्वीकृत समाधान केवल Today extensions में काम करता है, एक अन्य एक्सटेंशन-प्रकारों के लिए स्विफ्ट 3.1 (आईओएस 10 में परीक्षण) में कामकाजी समाधान:

इसके बाद आप अपने स्वयं के URL योजना बनाने के लिए, अपने 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 
} 
0

से कॉल करने की आईओएस 11 में ऐसा लगता है कि आप इस समस्या के बिना एक्सटेंशन में UIApplication.sharedApplication.openURL उपयोग कर सकते हैं की जरूरत है।

संबंधित मुद्दे