watchOS 7+下能否通过代码从独立Apple Watch应用跳转系统设置应用?
适配方案
适用版本:watchOS 7+
可以直接调用WKExtension.shared().openSystemURL(_:)跳转至应用的系统设置页,正确的URL格式为prefs:root=General&path=你的应用名称,需要将路径中的「你的应用名称」替换为你的App在Apple Watch系统中显示的实际名称。
修正后的代码示例
.alert(isPresented: $alertVisible) { Alert( title: Text("请允许我们的应用使用定位服务以获取天气数据"), message: Text("是否前往设置?"), primaryButton: .default(Text("设置"), action: { // 替换为你的App实际显示名称 guard let settingsUrl = URL(string: "prefs:root=General&path=我的天气") else { return } WKExtension.shared().openSystemURL(settingsUrl) }), secondaryButton: .cancel(Text("取消")) ) }
注意事项
- 要保证URL中填写的应用名称和系统设置里显示的App名称完全一致,大小写、空格都不能有差异,否则会跳转失败
- 不要强制解包URL,添加可选绑定判断可以避免异常崩溃
- 如果你的App最低适配版本为watchOS 8.0及以上,也可以直接使用系统提供的通用设置URL:
UIApplication.openSettingsURLString,无需手动拼接应用名称
内容的提问来源于stack exchange,提问作者Mateus Levi
相关产品推荐
相关产品推荐

