2015-10-30 24 views
9

我試圖通過我的應用程序使用Objective-C訪問WIFI設置。但找不到任何方法。有人能幫助我嗎?如何以編程方式在iOS9中打開目標c中的WIFI設置

與已經測試過:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 

在iOS 9

+0

你不能因爲iOS5.1:http://stackoverflow.com/questions/8246070/ios-launching-settings-restrictions-url-scheme – Larme

+1

這是一個僅限英語的網站。請翻譯(如果需要,請使用http://translate.google.com)。或者使用[Stackoverflow Portuguese](http://pt.stackoverflow.com/)。 Esteéum英語網站。 Por favor,traduzir(使用http://translate.google.com senecessário)。 Ou使用[/ url](http://pt.stackoverflow.com/)。 – rmaddy

+0

對不起,翻譯發錯了。 –

回答

11

這是我的代碼

if (&UIApplicationOpenSettingsURLString != NULL) { 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 
} 

嘗試首選項添加到URL方案,如:https://stackoverflow.com/a/31253743/3668465

+5

這不適用於iOS 10。任何解決方法? – unspokenblabber

+0

看到[這個](http://stackoverflow.com/questions/40126813/how-to-programmatically-open-the-wifi-settings-in-objective-c-on-ios-10)後得到解決方案 –

2

不工作,你不能獲得直接與無線網絡的OpenURL設置。你所能做的就是打開你自己的應用程序的設置。

if (&UIApplicationOpenSettingsURLString != nil) { 
    NSURL *URL = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
    [[UIApplication sharedApplication] openURL:URL]; 
} else { 
    ... 
} 
+0

其解決方案打開應用程序設置菜單。我想知道的是如何打開WiFi設置菜單。 –

+1

@HeltonSampaio你看過這個答案的第一句話嗎? – rmaddy

+1

是的。然而,我的iPhone上安裝了一個應用程序,它完全符合我的要求,他的名字是「Launcher」,你知道嗎?如果這個應用程序可以做,因爲我們不能這樣做? –

7

這在iOS 10上正常工作,

轉到目標 - >(應用程序) - >信息 - > URL類型 - > +

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"]]; 
    } 
} 
+4

在iOS 10中損壞。任何修復? – shim

+1

是的,這是在iOS10中破壞 – BigCheesy

+0

[This](http://stackoverflow.com/questions/40126813/how-to-programmatically-open-the-wifi-settings-in-objective-c-on-ios-10/42513576#42513576)在iOS 10上正常工作 –

1
//Pre iOS 10 
NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"]; 
if (![[UIApplication sharedApplication] canOpenURL:url]) 
{ //iOS 10+ 
    url = [NSURL URLWithString:@"App-Prefs:root=WIFI"]; 
} 
[[UIApplication sharedApplication] openURL:url]; 
4

所有條件:

NSURL * urlCheck1 = [NSURL URLWithString:@"App-Prefs:root=WIFI"]; 
    NSURL * urlCheck2 = [NSURL URLWithString:@"prefs:root=WIFI"]; 
    NSURL * urlCheck3 = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 

    if ([[UIApplication sharedApplication] canOpenURL:urlCheck1]) 
    { 
     [[UIApplication sharedApplication] openURL:urlCheck1]; 
    } 
    else if ([[UIApplication sharedApplication] canOpenURL:urlCheck2]) 
    { 
     [[UIApplication sharedApplication] openURL:urlCheck2]; 
    } 
    else if ([[UIApplication sharedApplication] canOpenURL:urlCheck3]) 
    { 
     [[UIApplication sharedApplication] openURL:urlCheck3]; 
    } 
    else 
    { 
     //Unable to open settings app. 
    } 
+0

有用..謝謝 – nix

相關問題