Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Python
- Realm
- github
- JPA
- Code
- Swift
- MacOS
- error
- Firebase
- window
- Git
- Archive
- 한글
- darkmode
- Notification
- Session
- stack
- view
- SwiftUI
- iOS16
- 개발자
- UIButton
- mac
- appstore
- 웹뷰
- Apple
- FLUTTER
- rxswift
- Xcode
- IOS
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) webView javascript 함수 실행 ( + 웹 다크모드 대응) 본문
반응형
webView에서 자바스크립트 함수를 실행하는 방법
웹뷰의 JavaScript 함수
<script type="text/javascript">
function funcName() {
return "OK";
}
</script>
Swift -> JavaScript 함수 호출
webView.evaluateJavaScript("funcName();") { (result, error) in
print("Result: ", result)
print("Error: ", error)
}
// 출력 결과
// Result: Optional("OK")
// Error: nil
응용 : 다크모드 대응 웹화면 색깔 변환
웹뷰의 JavaScript 함수
<head>
<script type="text/javascript">
function setDarkMode() {
var span = document.getElementById("targetSpan");
span.style.color = "#e3e2e3";
document.body.style.background = "#1b1b1b";
return "OK";
}
function setLightMode() {
var span = document.getElementById("targetSpan");
span.style.color = "#4b4b4b";
document.body.style.background = "#faf7f0";
return "OK";
}
</script>
</head>
<body>
<span id = "targetSpan" style= "font-family: -apple-system;">
...
</span>
</body>
Swift -> JavaScript 함수 호출
extension MyWebViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
if traitCollection.userInterfaceStyle == .dark { // Dark Mode
webView.evaluateJavaScript("setDarkMode();") { (result, error) in
print("Result: ", result)
print("Error: ", error)
}
} else { // Light Mode
webView.evaluateJavaScript("setLightMode();") { (result, error) in
print("Result: ", result)
print("Error: ", error)
}
}
}
}
'iOS, Swift' 카테고리의 다른 글
Swift) 앱 배포시 네아로 로그인 안됨 - EEYatHo iOS (0) | 2021.03.17 |
---|---|
iOS, Swift 애니메이션 서드파티 Lottie (0) | 2021.03.16 |
iOS, Swift 프레임워크 넣을 때 주의사항 (0) | 2021.03.10 |
iOS, Swift 콜렉션, 테이블 맨 아래 감지 (0) | 2021.03.05 |
iOS, Swift scrollViewDidEndScrollingAnimation 호출안됨 (0) | 2021.03.05 |
Comments