2012-04-17 16 views
9

मैं आईओएस के लिए कैप्टिव नेटवर्क का उपयोग करने का सबसे अच्छा तरीका खोजने के लिए शोध कर रहा हूं। ऐसा प्रतीत होता है कि यह क्या करता है, अगर मैं गलत हूं, तो मुझे सही करें, उपयोगकर्ता को विभिन्न एसएसआईडी और पासवर्ड इनपुट करने की अनुमति देता है जिसका उपयोग स्वचालित लॉगिन के लिए किया जा सकता है जब वह नेटवर्क उपलब्ध हो। यदि ऐसा है, तो निम्न को पूरा करने, उपयोगकर्ता से एसएसआईडी और पासवर्ड पढ़ने और उसे उस वाईफाई नेटवर्क से कनेक्ट करने का सबसे अच्छा तरीका क्या होगा या यह भी संभव है।कैप्टिव नेटवर्क उपयोग

अब तक सब मैं कर रहा हूँ इस के साथ वर्तमान में जुड़े नेटवर्क से बाहर खींच रहा है:

NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); 
id info = nil; 

for (NSString *ifnam in ifs) { 

    NSLog(@"ifnam = %@", ifnam); 

    info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge_retained CFStringRef)ifnam); 

    if (info && [info count]) { 
     break; 
    } 
} 

NSLog (@"SSID: %@", [ info objectForKey"@"SSID" ]); 

उत्तर

12

ए 'कैप्टिव नेटवर्क "की तरह आप होटल या स्टारबक्स में मिल से एक है, जहां वाईफाई कनेक्शन खुला है, लेकिन आप किसी भी वेबसाइट से कनेक्ट करने के लिए लॉगऑन या 'मैं शर्तों को स्वीकार करता हूं' पृष्ठ पर जाने की आवश्यकता है।

आम तौर पर, जब आप ऐसे नेटवर्क से कनेक्ट होते हैं, तो आईओएस सेटिंग्स ऐप लॉगऑन को पूरा करने के लिए एक वेब फॉर्म डाल देगा। सीएन एपीआई का उद्देश्य अपने ऐप को वेब फॉर्म डालने की बजाय प्रमाणीकरण करने की अनुमति देना है।

आपका प्रश्न उपयोगकर्ता से एसएसआईडी पढ़ने के बारे में पूछता है: यह बहुत उपयोगी नहीं लगता है क्योंकि सेटिंग ऐप पहले से ही उपयोगकर्ताओं को मनमाने ढंग से एसएसआईडी निर्दिष्ट करने और पासवर्ड के साथ लॉगिन करने की अनुमति देता है। कैप्टिव नेटवर्क एपीआई केवल तभी उपयोगी होगा यदि आपका ऐप नेटवर्क में लॉग इन करने के बारे में जानता है, इस मामले में यह एसएसआईडी भी जान सकता है। आप सामान्य NSTextField का उपयोग कर उपयोगकर्ता से पासवर्ड प्राप्त कर सकते हैं।

ध्यान दें कि जब भी नेटवर्क कनेक्ट होता है तो आईओएस आपके ऐप को शुरू नहीं करता है: यह एपीआई केवल तभी काम करता है जब आपका ऐप पहले से चल रहा हो।

+0

शानदार उत्तर। अपने ऐप में कैप्टिव नेटवर्क संदर्भ का उपयोग करते समय, क्या आपके ऐप उपयोगकर्ता को सेटिंग्स में वाईफाई का चयन करने की आवश्यकता है या नहीं? मुझे उम्मीद है कि आपको ऐप शुरू करने की जरूरत है, और यदि स्टारबक वाईफाई उदा। आईओएस द्वारा पहले से ही पता चला है, मैं प्रमाणीकरण और सेटिंग्स को छूए बिना ... में शामिल हो सकता हूं। – 3pic

+0

मेरा मानना ​​है कि उपयोगकर्ता को विशिष्ट वाईफाई नेटवर्क का चयन करने की आवश्यकता है, उसके बाद वह ऐप है जिसने पूर्ण प्रमाणीकरण पंजीकृत किया है। – Bryan

1

मैंने इसे 2 चरणों की प्रक्रिया के साथ सामान्य रूप से संभाला। पहला परीक्षण एक सामान्य पहुंच योग्यता परीक्षण था, जो विफल रहता है अगर कोई नेटवर्क मौजूद नहीं है। विफलता पर मैं उपयोगकर्ता को चेतावनी देता हूं कि नेटवर्क की आवश्यकता है। यदि नेटवर्क मौजूद है, तो दूसरे चरण के रूप में मैं अपने सेवर्स को एक अनुरोध भेजता हूं। यदि यह समय समाप्त हो जाता है, तो मैं उपयोगकर्ता को उस नेटवर्क कनेक्शन की जांच करने के लिए चेतावनी देता हूं जिस पर उसे ध्यान देने की आवश्यकता है।

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