Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

iOS/iPhone에서 WebView(웹뷰) 만드는 방법 – WebKit으로 쉽게 구현하기

iOS 웹뷰(WebView)란?

iOS 앱 내부에서 웹 페이지를 표시하려면 WebKit 프레임워크를 사용해야 합니다. 과거에는 UIWebView가 널리 사용되었지만, 현재는 공식적으로 지원이 중단(deprecated)되었기 때문에 반드시 WKWebView(Webkit View)를 사용하는 것이 좋습니다.

이 글에서는 Xcode의 WebKit View를 활용해 간단한 웹뷰를 만들고, 페이스북 페이지를 불러오는 예제를 단계별로 살펴보겠습니다.

1. 프로젝트 설정 및 WebKit View 추가

  • Xcode에서 새 프로젝트를 생성합니다.
  • 오브젝트 라이브러리(Object Library)에서 Webkit View를 드래그하여 ViewController 위에 배치합니다.
  • 원하는 레이아웃에 맞게 오토레이아웃 제약 조건(Auto Layout Constraints)을 설정합니다.
  • Webkit View를 ViewController에 아울렛(outlet)으로 연결합니다.

이 예제에서는 아래 코드를 사용해 페이스북 홈페이지를 열어보겠습니다.

let url = URL(string: "https://www.facebook.com")
override func viewDidLoad() {
    super.viewDidLoad()
    let request = URLRequest.init(url: self.url!)
    self.wbView.load(request)
}

viewDidLoad() 메서드에서 URLRequest 객체를 생성한 뒤, wbView의 load(_:) 메서드에 전달하면 웹뷰가 해당 URL을 자동으로 로드합니다.

2. App Transport Security(ATS) 설정 추가

HTTPS가 아닌 외부 리소스나 특정 도메인과 통신하려면 App Transport Security Settings 키를 info.plist에 추가해야 합니다.

info.plist 파일을 소스 코드(Source Code) 모드로 연 뒤, 아래 코드를 붙여넣습니다.

<key>NSAppTransportSecurity</key>
<dict>
<!--모든 연결 허용 (주의 필요)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

참고: NSAllowsArbitraryLoads를 true로 설정하면 모든 네트워크 연결이 허용되므로, 보안상 위험이 있을 수 있습니다. 실제 서비스에서는 허용할 도메인만 개별적으로 지정하는 것이 안전합니다.

3. iOS 10.0 이상 필수 권한 설정

iOS 10.0 이상을 실행하는 기기에서는 사진 라이브러리와 카메라 접근 관련 사용 설명 문구도 info.plist에 추가해야 합니다.

NSPhotoLibraryUsageDescription
NSCameraUsageDescription

각 키에는 사용자에게 접근 이유를 설명하는 문자열 값을 입력해야 하며, 이를 누락하면 앱이 크래시될 수 있습니다.

4. 시뮬레이터 실행 결과

모든 설정을 마친 후 앱을 빌드하고 시뮬레이터에서 실행하면, 아래 이미지처럼 웹뷰 안에 페이스북 페이지가 정상적으로 표시되는 것을 확인할 수 있습니다.

iOS/iPhone에서 WebView(웹뷰) 만드는 방법 – WebKit으로 쉽게 구현하기