swift Code
자신의 ViewController에 기본 Webview Setting은 자신에게 맞게 하고 녹색 부분을 추가해 주면 된다
override func viewDidLoad() {
super.viewDidLoad()
initView()
wkWebView.load(YOUR UrlRequest)
}
func initView() {
wkWebView = WKWebView(frame: contentView.frame, configuration: getWebViewConfiguration())
wkWebView.uiDelegate = self
wkWebView.navigationDelegate = self
}
func getWebViewConfiguration() -> WKWebViewConfiguration {
let contentController = WKUserContentController()
let wkWebViewConfiguration = WKWebViewConfiguration()
wkWebViewConfiguration.preferences = WKPreferences()
wkWebViewConfiguration.preferences.javaScriptEnabled = true
wkWebViewConfiguration.userContentController = contentController
contentController.add(self, name: "CustomMethod")
return wkWebViewConfiguration
}
extension YourViewController: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if(message.name == "CustomMethod") {
//TODO Update Token API Call
}
}
}
Javascript Code
Javascript 에서는 아래와 같이 iOS Native 호출을 해주면 되는데
빨간색 처리 된 부분처럼 {} 를 추가해 주지 않고, 빈 인자로 호출하면
TypeError: Not enough arguments 가 발생한다.
인자가 없더라도 아래처럼 추가해 주고 호출하면 된다.
window.webkit.messageHandlers.CustomMethod.postMessage({});
'공부방 > iOS' 카테고리의 다른 글
Tip of Firebase cloud Message payload (0) | 2019.07.03 |
---|---|
iOS Notification Function 기능 정리 (0) | 2019.07.02 |
iOS Firebase Push Notification Setting (0) | 2019.06.13 |
Swift naming rule (0) | 2019.05.08 |
Swift 변수 상수 선언 (0) | 2019.05.08 |
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!