在 SwiftUI 中,可以使用 openURL 来打开一个指定的 URL,例如跳转到一个网站、拨打电话或打开系统应用。
openURL 是通过环境对象 OpenURLAction 实现的:
@Environment(\.openURL) var openURL
在视图中,通过 openURL(url) 打开URL。
if let url = URL(string: "https://www.fangjunyu.com") {
openURL(url)
}
基本用法
import SwiftUI
struct ContentView: View {
@Environment(\.openURL) var openURL
var body: some View {
Button("Open Website") {
if let url = URL(string: "https://www.fangjunyu.com") {
openURL(url)
}
}
.padding()
}
}
实际应用中,通过openURL跳转的效果:
打开特定类型的链接
1、打开电话
if let phoneURL = URL(string: "tel://1234567890") {
openURL(phoneURL)
}
2、打开短信
if let smsURL = URL(string: "sms:1234567890") {
openURL(smsURL)
}
3、打开邮件
if let mailURL = URL(string: "mailto:fangjunyu.com@gmail.com") {
openURL(mailURL)
}
4、打开地图位置
if let mapURL = URL(string: "maps://?q=Rizhao") {
openURL(mapURL)
}
注意事项
1、确保传递给 openURL 的 URL 是有效的,避免崩溃。
2、某些 URL Scheme(例如 tel: 和 sms:)可能在模拟器上无效,但会在真机上正常运行。
3、对于复杂的深度链接,建议解析 URL 并根据参数进行操作。