2016-11-05 8 views
5

मैं अपने आईओएस ऐप को अपने विजेट से खोलने के लिए एक बटन को लागू करने का प्रयास कर रहा हूं। मुझे एहसास है कि इस मुद्दे को मंचों पर मार डाला गया है लेकिन मुझे प्राप्त होने वाली विशिष्ट त्रुटि के साथ स्पष्टीकरण नहीं मिल रहा है। शायद आप में से कुछ अनुभवी आईओएस डेवलपर्स इस पर कुछ प्रकाश डाल सकते हैं।NSWidgetExtensionContext openURL स्विफ्ट

मुझे अपने iOS में से एक के लिए एक अद्यतन विकासशील हूँ आईओएस 10 के लिए क्षुधा मेरी विजेट के बटन के लिए XCode 8.1 और स्विफ्ट 2.

कोड का उपयोग कर: enter image description here

यूआरएल स्कीम विजेट के Info.plist को जोड़ा गया : enter image description here

रनटाइम त्रुटि मैं प्राप्त करते हैं OpenApp बटन दबाने:

AppWidget[11872:3577323] __55-[_NCWidgetExtensionContext openURL:completionHandler:]_block_invoke failed: Error Domain=NSOSStatusErrorDomain Code=-10814 "(null)" 

// नोट: ऐप नाम उचित जेनेरिक के साथ प्रतिस्थापित किया गया है।

+0

क्या आपने अपनी ऐप सेटिंग्स में यूआरएल के लिए "AppName" जोड़ा है? – PGDev

+0

मैंने ऐसा किया है जैसा ऊपर बताया गया है। ऊपर स्क्रीनशॉट स्क्रीनशॉट – JRystedt

उत्तर

5

मुझे अक्सर OS Status lookup साइट त्रुटियों से विवरणों का अनुमान लगाने के लिए बहुत उपयोगी लगता है।

लॉन्च सेवाएं डेटाबेस में कोई आवेदन इनपुट मापदंड से मेल खाने: कोड -10814 के साथ एक ओएस त्रुटि एक kLSApplicationNotFoundErr, जो परिदृश्य जब वर्णन करता है।

ऐसा लगता है कि आपके आवेदन नहीं ठीक से किया गया URL योजना का उपयोग कर रहे के एक उपभोक्ता के रूप में प्रणाली के साथ पंजीकृत किया गया है। क्या आपने डबल-डबल (डबल!) चेक किया है कि बंडल पहचानकर्ता और यूआरएल योजना मैच? क्या आपने सत्यापित किया है कि सफारी से यूआरएल के साथ आपका ऐप लॉन्च किया जा सकता है?

2

आज विस्तार से युक्त अनुप्रयोग खोलने के लिए:

<key>CFBundleURLTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleURLName</key> 
      <string>com.mikitamanko.bubblewrap</string> 
      <key>CFBundleURLSchemes</key> 
      <array> 
       <string>main-screen</string> 
      </array> 
     </dict> 
    </array> 

सही:

let myAppUrl = URL(string: "main-screen:")! 
extensionContext?.open(myAppUrl, completionHandler: { (success) in 
    if (!success) { 
     print("error: failed to open app from Today Extension") 
    } 
}) 

तुम भी आवेदन के Info.plist में निम्न पंक्तियां (एक स्रोत कोड के रूप में खुला) जोड़ने की जरूरत बाद

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 

यहाँ complete guide है कि कैसे एप्लिकेशन या शेयर उपयोगकर्ता चूक बुद्धि को खोलने के लिए एच एक्सटेंशन और युक्त ऐप।

2

यूआरएल योजना मुख्य ऐप की जानकारी में जोड़ा जाना चाहिए। प्लिस्ट, विजेट नहीं।

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