BOOL parm_QJFMParm_bSucc = [[UIApplication sharedApplication] -openURL:[NSURL URLWithString:parm_QJFMParm_urlStr]]; 修改适配iOS 10
时间: 2024-12-15 16:25:33 浏览: 22
在iOS 10及以后版本中,`-openURL:`方法被弃用,因为Apple引入了安全的用户验证机制(如App Transport Security,ATS)。为了适应iOS 10,你需要使用`canOpenURL:`和`openURL:`方法结合处理。这里是一个修改后的示例:
```swift
if #available(iOS 10, *) {
// 判断URL是否可以通过safari或其他支持的应用打开
if let url = URL(string: parm_QJFMParm_urlStr),
UIApplication.shared.canOpenURL(url) {
// 使用safariservices API
if let svc = SFSafariViewController(url: url) {
UIApplication.shared.keyWindow?.rootViewController = svc
svc.delegate = self // 如果你的视图控制器实现了SFSafariViewControllerDelegate协议
} else {
// 或者尝试其他可选的分享方法(如WKWebView等)
}
} else {
// 如果应用无法打开URL,提示用户或采取其他措施
print("URL cannot be opened by the app")
}
} else {
// 对于iOS < 10,使用旧的方法,但可能不安全
BOOL succ = UIApplication.shared.openURL(NSURL URLWithString: parm_QJFMParm_urlStr);
}
```
确保你的视图控制器遵循`SFSafariViewControllerDelegate`协议(如果需要处理回调),并在必要时更新错误处理逻辑。
阅读全文