我需要在我的应用程序中以编程方式打开设置.我搜遍了SO,但到处都有人说这是不可能的.但今天我看到它在Facebook应用程序中实现.有一个按钮UIAlertView,当你点击它时,你打开设置.所以确实可以打开设置,我亲眼目睹了这一点.但是怎么做呢?有谁知道Facebook如何做到这一点?
Vit*_*Ziv 138
在iOS 8上,您可以以编程方式打开设置!
这是代码:
- (void)openSettings
{
BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的应用拥有自己的设置套装,则会打开设置,显示您应用的设置.如果您的应用没有设置包,则会显示主设置页面.
rck*_*nes 54
你不能,没有API调用来做到这一点.
只有系统对话框,来自Apple Frameworks的对话框才能打开设置应用程序.在iOS 5中有一个应用程序URL方案来打开系统对话框,但Apple稍后将其删除.
随着iOS 8的推出,您可以在应用页面上打开设置对话框.
if (&UIApplicationOpenSettingsURLString != NULL) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
else {
// Present some dialog telling the user to open the settings app.
}
Run Code Online (Sandbox Code Playgroud)
Sta*_*raj 32
在iOS 8上,您可以以编程方式打开设置!
以下是"设置"应用中当前已知网址的列表:
- (void) openSettings
{
if (&UIApplicationOpenSettingsURLString != nil)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
else
NSLog(@"UIApplicationOpenSettingsURLString is not available in current iOS version");
}
Run Code Online (Sandbox Code Playgroud)
- 首选项:根=通用及路径=关于
- 首选项:根=通用及路径= ACCESSIBILITY
- 首选项:根= AIRPLANE_MODE
- 首选项:根=通用及路径= AUTOLOCK
- 首选项:根=通用及路径= USAGE/CELLULAR_USAGE
- 首选项:根=亮度
- 首选项:根=通用及路径=蓝牙
- 首选项:根=通用及路径= DATE_AND_TIME
- 首选项:根= FACETIME
- 首选项:根=通用
- 首选项:根=通用及路径=键盘
- 首选项:根= CASTLE
- 首选项:根=城堡&路径= STORAGE_AND_BACKUP
- 首选项:根=通用及路径= INTERNATIONAL
- 首选项:根= LOCATION_SERVICES
- 首选项:根= ACCOUNT_SETTINGS
- 首选项:根= MUSIC
- 首选项:根=音乐与路径= EQ
- 首选项:根=音乐与路径= VolumeLimit
- 首选项:根=通用及路径=网络
- 首选项:根= NIKE_PLUS_IPOD
- 首选项:根= NOTES
- 首选项:根= NOTIFICATIONS_ID
- 首选项:根=电话
- 首选项:根=照片
- 首选项:根=通用及路径= ManagedConfigurationList
- 首选项:根=通用及路径=复位
- 首选项:根=声音和路径=铃声
- 首选项:根= Safari浏览器
- 首选项:根=通用及路径=助理
- 首选项:根=声音
- 首选项:根=通用及路径= SOFTWARE_UPDATE_LINK
- 首选项:根= STORE
- 首选项:根= TWITTER
- 首选项:根=通用及路径= USAGE
- 首选项:根= VIDEO
- 首选项:根=通用及路径=网络/ VPN
- 首选项:根=壁纸
- 首选项:根= WIFI
- 首选项:根= INTERNET_TETHERING
Ano*_*oah 19
Vito Ziv在Swift中的回答.
func openSettings() {
UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!, completionHandler: nil)
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*ble 13
此问题所引用的Facebook应用中的警报是一个标准警报,当您在Info.plist文件中将UIRequiresPersistentWiFi设置为YES并且用户在没有网络连接的情况下启动您的应用时,iOS会自动显示该警报.
总结一下这里的讨论:
Aec*_*Liu 10
关于prefs:root=和的备忘录Prefs:root.
是的,我们的应用程序今天因Appleprefs:root=和App-Prefs:rootURL计划而被Apple拒绝(2018-06-29).它们是私有API.
对于Swift 4,
只有UIApplication.openSettingsURLString是用于打开"设置"的公共API.
if (&UIApplicationOpenSettingsURLString != NULL)
Run Code Online (Sandbox Code Playgroud)
在iOS 8+中始终为TRUE.所以你可以像这样编辑
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
}
Run Code Online (Sandbox Code Playgroud)
(适用于iOS 10的新openURL)
小智 5
如果您想打开应用程序设置,您需要使用 UIApplicationOpenSettingsURLString 编写方法。
fileprivate func openSettings() {
UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!)
}
Run Code Online (Sandbox Code Playgroud)
如果您需要将打开许多设置之一,则需要使用此功能
fileprivate func openSettings() {
UIApplication.shared.open(URL(string:"App-Prefs:root=General")!)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70704 次 |
| 最近记录: |