티스토리 뷰

반응형

 

 

iOS앱에서 인앱 웹뷰가 아닌 외부 웹페이지로 이동 시키고자 할때가 있습니다. 특정 URL 웹페이지로 이동하는 코드를 구현해보겠습니다. UIKit, SwiftUI 모두 동일하게 사용가능한 기능입니다. 바로 가보겠습니다.

 


iOS 앱에서 URL 사용하여 웹페이지 이동하는 방법 알아보기
URL String 정의하여 URL struct 생성하기

이동한 URL을 생성하기 위해 먼저, 이동한 URL 주소 문자열을 정의해줍니다. 이후, 실제 URL 이동에 사용할 URL struct를 생성합니다. URL 생성자는 다양한 종류가 있지만, 이번에는 string 레이블을 사용하는 생성자를 사용하면 됩니다.

앞서 정의한 String 문자열을 생성자에 넣어서 URL을 반환해줍니다. 이때 URL은 옵셔널(Optional) 타입으로 반환되므로 URL 반환 메서드의 반환타입이 URL? 로 되어있습니다.

 

 

앞서 정의한 메서드를 사용하여 URL을 반환받도록 했습니다. URL? 타입을 반환하는 메서드이므로 옵셔널 바인딩(Optional Bindiing)을 사용하여 옵셔널 체크 후 URL을 open 하는 모습입니다.

위의 경우 UIApplication.shared.openURL 메서드를 사용하였는데, iOS10.0에 deprecated 되었다는 경고가 발생합니다. 따라서 UIApplication.shared.openURL대신 UIApplication.shared.open(_ :) 메서드를 대신 사용하시면 노란문구를 제거할 수 있습니다.

 


생성한 URL struct 사용하여 웹페이지 open 하기

UIApplication.shared.open(_ :) 메서드를 사용한 모습으로, 위 메서드를 사용하면 인앱에서 웹페이지로 이동할 수 있게 됩니다. 참고로 UIApplication 기능이므로, UIKit 을 import해야 정상적으로 기능 사용이 가능합니다.

open 메서드는 비동기적으로 특정 URL에 맞는 자원을 열어주는 메서드입니다. 또한 OpenExternalURLOptionsKey 타입의 option을 설정 가능한 options, 메서드 실행이 완료된 후, 해당 URL 처리 가능 유무를 처리가능한 클로져타입의 completion 레이블이 존재합니다만 사용하지 않았습니다.

단순 웹페이지 이외에도 다른 앱을 실행하거나 이 외 다양한 이벤트를 실행할 수 있는데, 이때 사용하는 URL이 정상동작할 수 있는지 체크하기 위해서 canOpenURL(_:) 메서드를 사용하여 사용 가능 여부를 판단 후, open 메서드를 사용할 수도 있습니다.

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함