【问题标题】:Open Settings iOS 8 URL打开设置 iOS 8 URL
【发布时间】:2016-01-25 05:05:31
【问题描述】:
我们如何使用 UIApplication.sharedApplication() 打开设置
我应该传入什么网址?
我使用了UIApplicationOpenSettingsURLString,但它直接打开到应用程序特定设置页面。但我想让它打开设置应用程序的第一级。
或者更好的是,我希望它直接打开到用户可以在手机上启用定位服务的页面。
下面的代码直接打开应用程序特定的设置页面。
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!);
【问题讨论】:
标签:
ios
objective-c
swift
swift2
uiapplication
【解决方案1】:
对于 Xamarin.iOS 开发人员:
UIApplication.SharedApplication.OpenUrl(new NSUrl(UIApplication.OpenSettingsUrlString));
【解决方案2】:
您可以在您的Info.plist 文件中使用UIRequiresPersistentWiFi 到YES 并创建像facebook 一样的警报视图,用户在没有网络连接的情况下启动您的应用程序。
在这里总结讨论:
第 1 步:没有可用于访问“设置”应用的根级别的 URL。
第 2 步:您可以在 iOS 8 中使用 UIApplicationOpenSettingsURLString 将用户发送到您的应用程序的设置应用程序部分。
通过将UIRequiresPersistentWiFi 设置为YES,您的应用可以显示与 Facebook 相同的警报,后者确实会打开“设置”应用的根级别。
【解决方案3】:
这个问题的答案是NO,我们不能直接打开Location页面,但是我们可以打开UIApplicationOpenSettingsURLString(设置页面)
试试这个
if let appSettings = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(appSettings)
}
else
{
// your URL is invalid
}
更多information
【解决方案4】:
您可以通过编程方式打开设置应用程序试试这个(仅适用于 iOS8 及更高版本)。
如果您使用的是Swift:
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString))
如果您使用的是Objective-C
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
对于其他较低版本(低于 iOS8),无法以编程方式打开设置应用程序。
对象 C:
- (void)openSettings
{
BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
}
斯威夫特:
func openSettings() {
UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
}