はじめに
外部リンクを開く実装についてメモ。
開発環境
- macOS Big Sur 11.4
- Xcode 12.5.1
- Swift 5.4.2
本題
"open(_:options:completionHandler:)"を使って外部リンクを開く処理を実装すると以下のようになる。
※参考:https://developer.apple.com/documentation/uikit/uiapplication/1648685-open
Button("Write a Review") { guard let writeReviewURL = URL(string: "https://apps.apple.com/app/idXXXXXXXXXX?action=write-review") else { fatalError("Expected a valid URL") } UIApplication.shared.open(writeReviewURL) } .font(.system(size: 18)) .padding()
しかし、SwiftUIで用意された"Link"を使うとより簡潔に実装できるため、こちらを使用すればよい。
※参考:https://developer.apple.com/documentation/swiftui/link
if let writeReviewURL = URL(string: "https://apps.apple.com/app/idXXXXXXXXXX?action=write-review") { Link("Write a Review", destination: writeReviewURL) .font(.system(size: 18)) .padding() }
おわりに
簡単なメモ程度なので記事にするか迷ったのですが、"Link"は意外と見落としがちな気がしたので記事に残しておきました。