iOS 10 beta:URL方案不起作用,但适用于iOS 9

时间:2016-06-22 06:32:13

标签: ios objective-c xcode ios10

在一个特定场景中,我将用户带到密码设置页面。下面是用于此的代码 -

%

升级到iOS 10测试版后,我不再使用设置密码页,而是终止应用。

任何人都可以帮助我。提前谢谢。

3 个答案:

答案 0 :(得分:11)

还没有。

iOS 10 beta 1发布前大约1个月,我的应用因打开Preference.app网址而被拒绝。应用程序审核小组给了我一个电话来解释它:现在不允许这样做:使用私有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];

答案 1 :(得分:4)

prefs方案在iOS 10上已更改,您可以使用:

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")!)
}

答案 2 :(得分:-2)

在iOS 10上,您可以使用openURL:options:completionHandler:代替

您还可以查看此文章(openURL Deprecated in iOS 10)以获取更多详细信息。