swift - CalloutAccessoryTapped - 为什么无法打开网址?我确定一些简单的事情
问题描述
所以我在玩MKAnnotationView
,我有权利calloutaccessory
。
由于我只有一个注释,我想我会尝试通过打开一个网页来尽可能简单地 - 谷歌。但是,事实并非如此,我不明白为什么。我错过了什么?
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
if control == view.rightCalloutAccessoryView {
let url = NSURL(string: "google.com")
UIApplication.shared.canOpenURL(url as! URL)
}
}
解决方案
它不是canOpenURL
用于检查应用程序是否能够打开 url
返回一个布尔值,指示 URL 的方案是否可以由设备上安装的某些应用程序处理。
从iOS 10 *它是UIApplication.shared.open(url, options: [:], completionHandler: nil)
,否则你可以使用
UIApplication.shared.openURL(url)
根据文档
重要的
如果您的应用在 iOS 9.0 或之后链接,您必须声明要传递给此方法的 URL 方案。通过将 LSApplicationQueriesSchemes 键添加到应用程序的 Info.plist 文件来执行此操作。如果您为未使用该键声明的方案调用此方法,则此方法始终返回 false,无论是否安装了适当的应用程序。要了解有关密钥的更多信息,请参阅 LSApplicationQueriesSchemes。
推荐阅读
- jupyter-lab - 如何保存jupyterlab的侧边栏宽度,或者设置默认宽度?
- ios - IOS - idevicesyslog 命令行工具 - 如何在日志中添加毫秒?
- c# - 用 C# 完成文件写入后如何通知过滤服务
- javascript - Django:获取多步表单的先前值以动态显示下一步的字段
- firebase - Cloud Firestore 读取操作的计费高出 10 倍
- python - Pynput 侦听器与 TKinter 并比较侦听器输出
- java - 无法在 Eclipse 中将类 src/test/java 导入 src/main/java
- html - 如何使用带有 srcset 属性的图片元素从 Asciidoc 源输出具有响应式图像的 HTML5?
- python - 如何在 React Native 和 Flask 之间发送图像?
- reactjs - React Render 和 ComponentDidMount 的重定向问题