티스토리 뷰
반응형
WKWebView에서 외부 웹페이지를 로드할 때 앱에 설치된 커스텀 폰트를 사용하려면, 웹페이지에 추가된 CSS를 수정하여 커스텀 폰트를 적용할 수 있습니다. 이를 위해 다음 단계를 수행해야 합니다.
1. 앱에 커스텀 폰트 추가:
프로젝트에 커스텀 폰트 파일 (예: custom_font.ttf)을 추가하고, Info.plist에 해당 폰트를 등록해야 합니다. Info.plist에서 "Fonts provided by application" 항목을 추가하고, 배열에 폰트 파일 이름을 입력하세요.
2. 웹페이지에서 사용할 CSS 스타일 정의:
웹페이지의 스타일에 앱에 설치된 커스텀 폰트를 사용하려면, CSS를 정의해야 합니다. 예를 들어, 다음과 같이 커스텀 폰트를 정의할 수 있습니다.
@font-face {
font-family: 'CustomFont';
src: local('CustomFont');
}
body {
font-family: 'CustomFont', sans-serif;
}
3. 웹페이지에 CSS 삽입:
WKWebView를 사용하여 외부 웹페이지를 로드한 후, 웹페이지에 CSS를 삽입해야 합니다. 이를 위해 WKUserScript를 사용하여 JavaScript 코드를 삽입할 수 있습니다.
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let config = WKWebViewConfiguration()
let source = """
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = `@font-face { font-family: 'CustomFont'; src: local('CustomFont'); } body { font-family: 'CustomFont', sans-serif; }`;
document.head.appendChild(style);
"""
let userScript = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
config.userContentController.addUserScript(userScript)
webView = WKWebView(frame: self.view.bounds, configuration: config)
webView.navigationDelegate = self
self.view.addSubview(webView)
let url = URL(string: "https://example.com")
let request = URLRequest(url: url!)
webView.load(request)
}
}
위 코드는 WKWebView에 커스텀 폰트를 적용하는 방법을 보여줍니다. WKUserScript를 사용하여 웹페이지에 CSS를 삽입하여 커스텀 폰트가 웹페이지에 적용되도록 합니다.
이렇게 하면 외부 웹페이지가 WKWebView로 로드될 때 앱에 설치된 커스텀 폰트로 표시됩니다.
반응형
'Mobile > iOS' 카테고리의 다른 글
CollectionViewCompositionalLayout 아이템간 간격을 주고싶습니다. (0) | 2023.05.04 |
---|---|
맥북을 껏다 켜니 계속 이 시동 디스크를 검사하려면 인터넷 연결이 필요합니다. 라고 메시지박스가 뜹니다. 해결책은 무엇일까요? (1) | 2023.04.15 |
MVVM 사용 시 어떤 view 에 대한 delegate 가 필요할때 상황에 따라 ViewModel 이 delegate 를 채택하는 것도 괜찮은 방법인가요? (0) | 2023.04.08 |
Hero iOS 라이브러리 (0) | 2023.04.04 |
Lottie 강력하고 가벼운 애니메이션 라이브러리 (0) | 2023.04.03 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 1일1독
- bible
- mysql
- Android
- react
- 안드로이드
- 성경
- 성경읽기
- 유튜브
- ChatGPT
- AWS
- genesis
- 챗gpt
- 성경책
- 성경듣기
- 성경통독
- MariaDB
- snapkit
- 오디오북
- 통독
- 창세기
- iPhone
- SWIFT
- IOS
- youtube
- 아이폰
- 반응형웹
- VR
- 말씀
- 아이폰개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함