13

在一种特定情况下,我将用户带到密码设置页面。下面是用于此的代码 -

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

升级到 iOS 10 测试版后,我不再进入设置密码页面,而是终止了应用程序。

谁能帮我解决这个问题。提前致谢 。

4

3 回答 3

11

还没有办法。

在 iOS 10 beta 1 发布前大约 1 个月,我的应用因为打开了 Preference.app URL 而被拒绝。应用审核组给我打了电话解释:现在不允许,原因:使用私有API。只允许打开当前应用的设置页面(UIApplicationOpenSettingsURLString)。

所以现在他们为什么拒绝我真的很有意义。因为从 iOS 10 开始就没有人可以打开系统设置了。

2016 年 12 月 8 日更新的答案:

使用私有 API(不要将带有这些代码的应用程序提交到 App Store):

@interface PrivateApi_LSApplicationWorkspace
- (BOOL)openSensitiveURL:(id)arg1 withOptions:(id)arg2;
@end

PrivateApi_LSApplicationWorkspace* _workspace;

_workspace = [NSClassFromString(@"LSApplicationWorkspace") new];

BOOL result = (BOOL)[_workspace openSensitiveURL:[NSURL URLWithString:@"Prefs:root=YOURSETTINGURLHERE"] withOptions:nil];
于 2016-06-23T08:19:44.860 回答
5

iOS 10 上的 prefs 方案已经改变,你可以使用这个:

if #available(iOS 10.0, *) {
    UIApplication.shared.open(URL.init(string:"App-Prefs:root= PASSCODE")!, options: [UIApplicationOpenURLOptionUniversalLinksOnly:true], completionHandler:{(success: Bool?) -> Void in}})
} else {
    // Fallback on earlier versions
    UIApplication.shared.openURL(URL.init(string:"Prefs:root= PASSCODE")!)
}
于 2016-12-09T11:06:04.720 回答
-2

在 iOS 10 上,您可以openURL:options:completionHandler:改用;

您也可以查看这篇文章(openURL Deprecated in iOS 10)了解更多详情。

于 2016-09-26T07:35:14.977 回答