HowTo —— SwiftUI2.0 使用 Link 或 openURL 打开 URL scheme
SwiftUI2.0 提供了原生的打开 URL scheme 的功能,我们可以十分方便的在代码中调用其他的 app。
健康笔记 - 新生活从记录开始
健康笔记是一款智能的数据管理和分析工具,让您完全掌控自己和全家人的健康信息。作为慢性病患者,肘子深知健康管理的重要与难度。创建健康笔记的初心,就是要为您提供一款轻松高效的健康信息记录与分析工具
推荐
Link
类似于 NavigationLink , 直接打开 URL scheme 对应的 app
Link("openURL",destination:safariUrl)
openURL
本次在 SwiftUI2.0 中,苹果提供了若干个通过 Environment 注入的调用系统操作的方法。比如 exportFiles,importFiles,openURL 等。
@Environment(\.openURL) var openURL
openURL.callAsFunction(url)
代码范例
struct URLTest: View {
@Environment(\.openURL) var openURL
let safariUrl = URL(string:"http://www.apple.com")!
let mailUrl = URL(string:"mailto:foo@example.com?cc=bar@example.com&subject=Hello%20Wrold&body=Testing!")!
let phoneURl = URL(string:"tel:12345678")!
var body: some View {
List{
Link("使用 safari 打开网页",destination:safariUrl)
Button("发送邮件"){
openURL.callAsFunction(mailUrl){ result in
print(result)
}
}
Link(destination: phoneURl){
Label("拨打电话",systemImage:"phone.circle")
}
}
}
}
模拟器仅支持极少数的 URL,最好使用真机测试 苹果官方提供的一些 URL scheme
如果您发现本文对您有所帮助或者享受阅读,请考虑捐赠以支持我的写作。您的贡献将帮助我继续为您创造有价值的内容。
通过 微信、 Patreon、 Buy Me a Coffee 进行捐赠。
欢迎通过 Twitter、 Discord 频道 或下方的留言板与我进行交流。
通过 微信、 Patreon、 Buy Me a Coffee 进行捐赠。
欢迎通过 Twitter、 Discord 频道 或下方的留言板与我进行交流。
本博客文章采用 CC 4.0 协议,转载需注明出处和作者。