2016-09-30 9 views
15

मैं वरीयता उपयोग कर रहा था और यह आईओएस 9 पर बहुत अच्छा काम कर रहा था लेकिन यह अब आईओएस 10 पर काम नहीं करता है।खुला वाईफ़ाई सेटिंग्स द्वारा "वरीयता: जड़ = वाईफ़ाई": सीधे Wi-Fi सेटिंग में iOS सेटिंग आवेदन को खोलने के लिए Info.plist में दर्ज किए गए वरीयता के साथ मेरे एप्लिकेशन में जड़ = वाईफ़ाई url योजना आईओएस में विफल रहा है 10

क्या किसी को पता है कि यह पहले डेवलपर पूर्वावलोकन में केवल एक रिग्रेशन है या आईओएस 10 में वाई-फाई सेटिंग्स को खोलने का तरीका बदल गया है या अब इसकी अनुमति नहीं है?

+4

'वरीयता:' URL योजना कभी नहीं था आधिकारिक रूप से समर्थित है। – rmaddy

+0

लेकिन हमारे ऐप को वाईफाई सेटिंग्स खोलने की जरूरत है। क्या आप किसी अन्य एपीआई कार्यों को जानते हैं। – tbago

+0

ऐप-प्रीफ़्स: रूट = वाईफ़ाई मेरे लिए काम करता है – everettjf

उत्तर

5

मेरा ऐप भी एपीआई का उपयोग कर रहा है। दुर्भाग्य से सेब इसे आईओएस 10 पर अक्षम कर देता है। मेरा समाधान यहां है: आईओएस 10 के नीचे, यह अभी भी सेटिंग ऐप खोल सकता है। आईओएस 10 पर, यह सेटिंग ऐप के उपपृष्ठ (सेलुलर डेटा एक्सेस) पर जायेगा, आप एक क्लिक से पेज को सेट करने के लिए वापस आ सकते हैं। मैं इसे रखने का फैसला करता हूं। क्योंकि यह उपयोगकर्ता से मैन्युअल रूप से सेटिंग ऐप खोलने के लिए सुविधाजनक है।

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"]; 
if ([[UIApplication sharedApplication] canOpenURL:url]) { 
    [[UIApplication sharedApplication] openURL:url]; 
} else { 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 
} 
13

स्विफ्ट 3.0: - आईओएस 10 और यह भी नए संस्करण में काम कर रहे आईओएस 7,8,9

@IBAction func openWifiSetting(_ sender: AnyObject) { 
    let url = URL(string: "App-Prefs:root=WIFI") //for WIFI setting app 
    UIApplication.shared.openURL(url!) 
} 
+2

वाह! मैंने आशा छोड़ दी थी कि आईओएस 10.x के बाद यह संभव था। क्या आपको यह विश्वास करने का कोई कारण मिला है कि ऐप स्टोर द्वारा ऐप को खारिज कर दिया जाएगा? –

+0

आईओएस 11 भी ठीक है –

6

इस उद्देश्य सी के लिए आईओएस में 10

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"]; 
if ([[UIApplication sharedApplication] canOpenURL:url]) { 
    [[UIApplication sharedApplication] openURL:url]; 
} else { 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]]; 
} 
15

बस तो यह है की कोशिश स्पष्ट: ऐप्पल इसकी अनुमति नहीं देता है। यह संभव है कि आपका ऐप वैसे भी इसे बनाएगा, लेकिन यह किसी भी अन्य अनियंत्रित एपीआई का उपयोग करने जैसा ही है।

समर्थित यूआरएल यूआरएल योजनाओं के Here is the full list

Here's a thread जहां एप्पल पुष्टि की है कि "किसी भी एप्पल यूआरएल योजनाओं कि आधिकारिक तौर पर दर्ज नहीं किया जाता है निजी एपीआई विचार किया जाना चाहिए।"

+0

ग्रेट अपवॉटेड। बहुत बढ़िया –

1

यह आईओएस 10 पर ठीक काम करता है,

लक्ष्यों पर जाएं -> (एप्लिकेशन) -> जानकारी -> यूआरएल प्रकार -> +

URL Schemes लिखने

में

वरीयता

फिर कॉल,

- (void)openWifiSettings 
{ 
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=WIFI"]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 
    } else { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]]; 
    } 
} 
2

का उपयोग करना "ऐप-Prefs: जड़" के बदले "वरीयता: रूट"

1

आईओएस 10, आपकी ऐप्लिकेशन सेटिंग खोलने के लिए:

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) { 
       UIApplication.shared.openURL(settingsURL) 
      } 
संबंधित मुद्दे