SpringBoot로 구현한 서버에서 화면을 불러오려고 WebView 사용법을 찾아봤다.
https://ios-development.tistory.com/701
다양한 기능들을 작성해주셔서 다음에 두고두고 찾아봐야겠다..!
1. Http 통신 설정
Xcode 자체에서 기본적으로 https 통신만 허용되고 있다고 한다.
보통 로컬 개발은 http로 이루어지기 때문에 설정이 필요하다.
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 부분만 변경해주었다.
글자가 아주아주 작게 보이지만 정상적으로 출력되는 것을 볼 수 있다.
'DEV - iOS > iOS' 카테고리의 다른 글
[Swift] iOS 프로젝트 Google Login 구현하기 (0) | 2022.10.22 |
---|---|
[Swift] FSCalendar 라이브러리로 달력 구현하기-1(설치) (0) | 2022.08.08 |
[Swift] Firebase Firestore 데이터 저장하기(이메일 중복 검사) (0) | 2022.05.21 |
[Swift] Firebase Auth 로그인 기능 (0) | 2022.04.27 |
[Swift] iOS 프로젝트에 Firebase 연동하기 2 - Realtime Database (0) | 2022.04.11 |