好吧,我知道关于它有很多问题,但它们都是很久以前的事了。

所以。我知道这是可能的,因为地图应用程序做到了。

在地图应用程序中,如果我关闭这个应用程序的本地化,它会给我发送一条消息,如果我按ok,“设置应用程序”就会打开。 我的问题是,这怎么可能呢? 如何从我自己的应用程序打开“设置应用程序”?

基本上我需要做同样的事情,如果用户关闭了我的应用程序的位置,那么我就会给他显示一条信息,上面写着将打开“设置应用程序”


当前回答

在Swift 3 / iOS 10+中看起来是这样的

if let url = URL(string: "App-Prefs:root=LOCATION_SERVICES") {
    UIApplication.shared.open(url, completionHandler: .none)
}

其他回答

iOS 10更新

苹果将该方法更改为在主线程上打开async。但是,从现在开始,只能在本机设置中打开应用程序设置。

[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];

iOS 9更新

现在可以直接进入子设置菜单。但是,需要创建URL方案。有两种方法:

XCode -你会在目标,信息,URL方案中找到它。然后,输入prefs。 直接添加到*-Info.plist。增加如下内容: <键> CFBundleURLTypes关键> < / < >数组 < dict > <键> CFBundleTypeRole关键> < / <字符串>编辑字符串> < / <键> CFBundleURLSchemes关键> < / < >数组 <字符串>首选项> < /字符串 > < /数组 < / dict > > < /数组

然后代码:

斯威夫特

UIApplication.sharedApplication () .openURL (NSURL(弦:“首选项:根=一般路径=键盘”)!)

objective - c

[eapplication sharedApplication] openURL:[NSURL优先字符串:

是的! !你可以启动设备设置界面,我已经在iOS 9.2上测试过了

步骤1。我们需要添加URL方案

去项目设置——>信息——> URL类型——>添加新的URL方案

步骤2。通过编程启动设置感谢@davidcann

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

此外,我们还可以通过使用适当的名称来启动音乐、位置等子屏幕

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

请看亨利·诺马克分享的完整名单


更新:

根据评论,每个人都想知道我的申请提交状态改变后会发生什么?

是的! !我获得了成功的更新提交和应用程序可在商店没有任何抱怨。

确认一下, 我今天早上刚下载并禁用了位置服务,然后启动了应用程序,它要求我获得位置权限,然后我的警报弹出在那里发送给我设置->位置服务页面->启用->就是这样!!

(注意:! 你的应用可能会被拒绝……如果你使用这种方法,即使它被批准了,在将来的版本中也可能会被拒绝

您可以使用下面的代码。

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

由于openURL(_::)在iOS 10.0之后已被弃用,请使用open(_:options:completionHandler:)代替。

if let settingsUrl = URL(string: UIApplication.openSettingsURLString)  {
        UIApplication.shared.open(settingsUrl, options: [:]) { completed in
             if !completed {
                 print("Failed opening")
             }
        }
}

在iOS 10上测试。工作

NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
NSURL* url = [NSURL URLWithString:urlString];
if([[UIApplication sharedApplication] canOpenURL:url]){
    [[UIApplication sharedApplication] openURL:url];
    break;
}
}

快乐编码:)