[SwiftUI] Link

RudinP·5일 전
0

Study

목록 보기
311/325

let url = URL(string: "http://developer.apple.com")!
    let sms = URL(string: "sms://010-0000-0000")!
    
    var body: some View {
        VStack {
            Button("Apple Developer") {
                UIApplication.shared.open(url, options: [:], completionHandler: nil)
            }
            .padding()
            
            //링크
            Link("Apple Developer", destination: url)
                .padding()
            
            //커스터마이징
            Link(destination: url) {
                Label("Apple Developer", systemImage: "house")
            }
            .padding()
            .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 12))
            .environment(\.openURL, OpenURLAction { url in
                //링크로 이동 전에 이 클로저가 실행됨
                if url.absoluteString.contains("com") {
                    print("주소에 com이 포함되어있다면 실행")
                }
                else if url.absoluteString.hasPrefix("http://") {
                    var components = URLComponents(url: url, resolvingAgainstBaseURL: false)!
                    components.scheme = "https"
                    return .systemAction(components.url!)
                }
                else if url.absoluteString.contains("badsite.com") {
                    //아무 동장 x -> 사이트 이동 막기
                    return .discarded
                }
                
                return .systemAction
            })
        }
    }
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글