2016-09-30 139 views
15

我在应用程序中使用了prefs:root = WIFI url方案,在info.plist中输入了偏好设置,可直接在Wi-Fi设置中打开iOS设置应用程序并且它在iOS 9上运行良好,但它在iOS 10上无法工作。通过“prefs:root = WIFI”打开Wifi设置失败iOS 10

有谁知道这是否仅仅是第一次开发人员预览中的回归或开放Wi-Fi设置的方式在iOS 10中发生了变化或者它不再被允许?

+4

的'首选项:'URL方案是从来没有正式支持。 – rmaddy

+0

但我们的应用程序需要打开wifi设置。你知道其他的API作品吗? – tbago

+0

App-Prefs:root = WIFI适合我 – everettjf

回答

5

我的应用程序也使用该API。不幸的是苹果在iOS 10上禁用了这个功能。这是我的解决方案:在iOS 10下面,它仍然可以打开设置应用在iOS 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

SWIFT 3.0: - 在iOS的10及更高版本也正在iOS的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

哇!我已经放弃希望,这是可能的后iOS 10.x.你有没有找到任何理由相信这样做会得到App Store拒绝的应用程序? –

+0

iOS11也可以 –

6

iOS中尝试一下本作Objective C的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

只是所以它的明确的:苹果不允许这样做。无论如何,您的应用可能会完成此操作,但这与使用任何其他未公开的API相同。

Here is the full list支持的Apple URL方案。

Here's a thread其中Apple确认“任何未正式记录的Apple URL方案应视为私有API”。

+0

很棒upvoted。做得好 – 2017-02-28 17:03:59

1

这适用于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"]]; 
    } 
} 
2

使用 “应用程序,偏好设置:根”,而不是 “首选项:根”

1

iOS的10,打开你的应用程序设置:

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) { 
       UIApplication.shared.openURL(settingsURL) 
      }