iOS

[iOS] 아이폰에서 URL, 이메일 열기

seu11ee 2021. 2. 28. 23:59

안녕하세요! 오늘은 아이폰에서 URL을 여는 방법을 알아볼게요.

 

앱에서 아이폰 기본 메일앱으로 이동하거나 외부 링크로 연결되거나 하는 경우가 있는데요, 

 

매우 간단한 방법으로 구현할 수 있습니다.

 

저는 이렇게 아래 코드와 같이 url을 스트링으로 받는 함수를 만들어서 사용했어요. 그냥 원하는 url을 넣어서 호출하시면 됩니닷! ㅎ.ㅎ

 

아래에 #available은 실행되는 기기의 iOS 버전에 따라 다르게 실행할 수 있도록 분기처리 해준 것입니다.

func openURL(urlString: String){
	if let url = URL(string: "\(urlString)"){
    	if #available(iOS 10.0, *){
        	UIApplication.shared.open(url)
        }
        else{
            UIApplication.shared.openURL(url)
        }
    }
}

일반 웹 URL은 그냥 주소를 넣어주면 되고, 이메일의 경우는 정해진 형식이 있는데요.

func createEmailUrl(to: String, subject: String, body: String) -> String {
    let subjectEncoded = subject.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
    let bodyEncoded = body.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
        
    let defaultUrl = "mailto:\(to)?subject=\(subjectEncoded)&body=\(bodyEncoded)"
        
    return defaultUrl
}

이렇게 형식만 맞춰주시면 보내려는 메일 주소, 제목, 본문까지 채워서 메일앱을 열 수 있어요.

이 외에도 openURL을 이용해서 앱 간의 이동을 구현할 수도 있어요! 예를 들면 앱 안에서 어떤 버튼을 누르면 설정으로 이동하는 것 같은게 있겠죠?? 

 

처음엔 어려울 줄 알았던 기능인데 찾아보니 아주 쉬웠습니다. 

 

감사합니다.