【发布时间】:2018-09-20 10:22:16
【问题描述】:
我们正在使用以下代码
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Battery"]];
但代码在 iOS 12.0 中对我不起作用
【问题讨论】:
-
这是私有 API;如果您使用它(或任何替代品),您的应用将在应用审核期间被拒绝
我们正在使用以下代码
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Battery"]];
但代码在 iOS 12.0 中对我不起作用
【问题讨论】:
你有两个步骤:
您必须在项目中配置 URL 方案。您可以在 Target、Info 和 URL Scheme 中找到它。在那里,只需键入首选项。
稍后,只需使用所需首选项的 URL 路径编写代码即可。在这种情况下,它是电池路径。
网址方案
Launch from Widget (Prefs:) :- Prefs:root=BATTERY_USAGE
Launch from App (App-prefs:) :- App-prefs:root=BATTERY_USAGE
Swift 1.2
UIApplication.sharedApplication().openURL(NSURL(string:"Prefs:root=BATTERY_USAG")!)
Swift 3.0
UIApplication.sharedApplication().openURL(NSURL(string:"App-prefs:root=BATTERY_USAGE")!)
Objective C
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"Prefs:root=BATTERY_USAG"]];
【讨论】:
对于 iOS 10,只需将 prefs 替换为 App-Prefs。以上代码适用于 iOS 8、9、10。请参考以下代码。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=General&path=Battery"]];
10.0 以上无法重定向电池使用屏幕,因为 iOS 10.0 后不推荐使用上述方法
【讨论】: