DEV - iOS/iOS

[Swift / SpringBoot] WebView로 SpringBoot 서버 화면 띄우기

베이비코더 2022. 8. 2. 00:07
반응형

SpringBoot로 구현한 서버에서 화면을 불러오려고 WebView 사용법을 찾아봤다.

https://ios-development.tistory.com/701

 

[iOS - swift] 2. WKWebView 사용 방법 (웹뷰, 쿠키, WKScriptMessageHandler, WKNavigationDelegate, WKUIDelegate)

1. WKWebView 개념1 (UIWebView, AJAX, XHR, 캐시, 쿠키) 2. WKWebView 사용 방법 (웹뷰, 쿠키, WKScriptMessageHandler, WKNavigationDelegate, WKUIDelegate) WKWebView를 사용하기 전 알아야할 기본 개..

ios-development.tistory.com

다양한 기능들을 작성해주셔서 다음에 두고두고 찾아봐야겠다..! 

 

1. Http 통신 설정

Xcode 자체에서 기본적으로 https 통신만 허용되고 있다고 한다.

보통 로컬 개발은 http로 이루어지기 때문에 설정이 필요하다.

info.plist

info.plist에서 빨간색으로 표시한 부분을 추가해주었다.

처음에는 App Transport Security Settings가 없어서 당황했는데

Information Property List에서 우클릭 > add row 여러 설정들을 추가할 수 있었다.

App Transport Security Settings에서 Allow Arbitrary Loads도 추가하고 Value를 YES로 설정

(No로 바꿔보고 run 했는데 잘 되긴 했다.. 더 알아봐야겠다.)

 

2. Storyboard WebView 추가

WebView를 검색했을 때 나오는 두 번째 WebKit View를 화면에 추가했다.

위에 뜨는 건 레거시 ~ 올더 ~ 밑에 거 쓰란다

main StoryBoard에 WebView를 추가하고,

상하좌우 여백 모두 0을 주어 화면 꽉 차게 했다.

 

3. CODE
import UIKit
import WebKit

class ViewController: UIViewController {
    
    @IBOutlet weak var mainWebview: WKWebView!
    override func loadView() {
        super.loadView()
        
        self.view = self.mainWebview
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if let url = URL(string: "https://www.naver.com") {
            let request = URLRequest(url: url)
            mainWebview.load(request)
        }
    }
}

import WebKit을 해주어야 Webview 객체를 생성할 수 있다.

간단하게 naver를 띄워보았다.

대전사람아님

아주 아주 잘 나온다.

 

그렇다면 SpringBoot 서버 화면을 띄워보자.

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
	
	@RequestMapping("/")
	public String helloWorld() {
		return "HelloWorld!";
	}
	
}

SpringBoot 서버를 띄우고 http://localhost:8080/ 에 접속하면 "HelloWorld!" 글자를 볼 수 있다.

크롬에서 확인했을 때는 이런 상태.

 

import UIKit
import WebKit

class ViewController: UIViewController {
    
    @IBOutlet weak var mainWebview: WKWebView!
    override func loadView() {
        super.loadView()
        
        self.view = self.mainWebview
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if let url = URL(string: "http://localhost:8080/") {
            let request = URLRequest(url: url)
            mainWebview.load(request)
        }
    }
}

URL 부분만 변경해주었다.

 

HelloWorld!

글자가 아주아주 작게 보이지만 정상적으로 출력되는 것을 볼 수 있다.

반응형