본문 바로가기

프로그래밍/SwiftUI

[iOS] SwiftUI를 이용하여 Web page 띄우기

SwiftUI를 통해 웹페이지를 띄우는 것은 상당히 간단하다.

어떠한 framework도 import 할 필요 없이 URL과 간단한 설정만 하면 끝난다. 

 

ContentView.swift

import SwiftUI

struct ContentView: View {
    
    var body: some View {
    	WebView(url: "https://taeminator1.tistory.com")
        	.frame(maxWidth: .infinity)
    }
}

 

다음은 Info.plist에 내용을 수정하면 된다. Information property list file의 약자로, 앱 실행에 필요한 여러 가지 설정을 text 형식으로 만들어 놓은 파일이다. 

여러 속성 중, App Transport Security Settings의 Allow Arbitrary Loads의 값을 바꿔주자. 

애플의 보안 정책(App Transfer Security)에 의해 우리가 열길 원하는 웹페이지가 안 열릴 수도 있기 때문이다. 

 

하지만 아래 방법을 사용하면 애플리케이션을 출시할 때 reject사유가 될 수 있다고 한다. (아직 iOS 앱을 출시해본 적이 없어서 확인은 안 되었다) 이럴 경우 다른 방법을 통해 웹페이지를 열어야 하는데, 일단 웹페이지를 띄워야 하니까...

 

default Property List로 되어 있지만, 아래 그림과 같이 Source Code로 변경하면, 원하는 속성을 찾기도 쉽고 수정하기도 쉽다. 

아래 그림과 같이 <dict>~</dict> 안에 <key>NSAppTransportSecurity</key> 이하를 추가해주면 된다. 

 

Info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

	...
    
    <key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
</dict>
</plist>

 

이렇게 설정을 한 뒤 실행을 하면, 아래와 같이 웹페이지가 열린다.