iOS应用开发之如何跳到系统设置的WiFi界面

在iOS应用开发中,相信很多初级开发者,都认为苹果不支持直接从应用跳到系统设置里面的WiFi界面。非也~~其实这是可以实现滴,而且还很简单。之前小编也一度以为无法这个功能没法实现,但是昨天在网上看到了一位大神的文章中却轻松的实现了,我无法淡定了,把这篇文章分享出来,大家一起looklook吧~~

需求
在看具体实现前,我们先看看具体需求。从应用跳到系统设置里的WiFi界面,这种需求一般是怎么样的存在?我们通过两个例子来看看:
 
在没有网的状态下,你可能想提醒用户去设置界面连接WiFi。如果不能跳到WiFi界面,只能在APP里面做出文字提示。这样很多小白用户可能不会看提示,只会觉得APP没有做好。
 
还有一种情况,做智能家居的APP,智能硬件设备自带WiFi(局域网)。如果用户没有连接设备的WiFi进入APP时,需要提示用户去设置界面连接WiFi。
 
以上这两种情况只是举个例子,这个小功能的用处还是很多的,大家可以自行探索。
 
实现
 
info里面设置
 
在项目中的info.plist中添加 URL types 并设置一项URL Schemes为prefs,如下图:


 

实现代码
 
NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];
if ([[UIApplication sharedApplication] canOpenURL:url])
{
    [[UIApplication sharedApplication] openURL:url];
}
 



关于iOS8跳转内置的Settings的URL Scheme参考如下:

About — prefs:root=General&path=About

Accessibility — prefs:root=General&path=ACCESSIBILITY

Airplane Mode On — prefs:root=AIRPLANE_MODE

Auto-Lock — prefs:root=General&path=AUTOLOCK

Brightness — prefs:root=Brightness

Bluetooth — prefs:root=General&path=Bluetooth

Date & Time — prefs:root=General&path=DATE_AND_TIME

FaceTime — prefs:root=FACETIME

General — prefs:root=General

Keyboard — prefs:root=General&path=Keyboard

iCloud — prefs:root=CASTLE

iCloud Storage & Backup — prefs:root=CASTLE&path=STORAGE_AND_BACKUP

International — prefs:root=General&path=INTERNATIONAL

Location Services — prefs:root=LOCATION_SERVICES

Music — prefs:root=MUSIC

Music Equalizer — prefs:root=MUSIC&path=EQ

Music Volume Limit — prefs:root=MUSIC&path=VolumeLimit

Network — prefs:root=General&path=Network

Nike + iPod — prefs:root=NIKE_PLUS_IPOD

Notes — prefs:root=NOTES

Notification — prefs:root=NOTIFICATIONS_ID

Phone — prefs:root=Phone

Photos — prefs:root=Photos

Profile — prefs:root=General&path=ManagedConfigurationList

Reset — prefs:root=General&path=Reset

Safari — prefs:root=Safari

Siri — prefs:root=General&path=Assistant

Sounds — prefs:root=Sounds

Software Update — prefs:root=General&path=SOFTWARE_UPDATE_LINK

Store — prefs:root=STORE

Twitter — prefs:root=TWITTER

Usage — prefs:root=General&path=USAGE

VPN — prefs:root=General&path=Network/VPN

Wallpaper — prefs:root=Wallpaper

Location — prefs:root=LOCATION_SERVICES

posted @ 2016-01-20 12:24  Bo-tree  阅读(655)  评论(0)    收藏  举报