쪼렙 as! 풀스택

iOS 하이브리드앱, Javascript 로 웹뷰에 메세지 보내기 (네이티브 코드 사용할 수 있도록) 본문

개발 일지/iOS & Android

iOS 하이브리드앱, Javascript 로 웹뷰에 메세지 보내기 (네이티브 코드 사용할 수 있도록)

코코앱 2019. 12. 28. 18:51

 

 

WKWebView 가 있는 ViewController

class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler {

    @IBOutlet weak var webView: WKWebView!
    
    private let HOME_URL = "https://MYWEB.URL"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        webView.uiDelegate = self
        webView.navigationDelegate = self
        // webView.configuration.websiteDataStore = WKWebsiteDataStore.default()
        // webView.configuration.userContentController.add(self, name: "CUSTOM_FUNCTION_NAME")
        self.webView.load(URLRequest(url: url!))        
    }
    
    
    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        print(message)
    }

    ...
    
}

 

Javascript 코드에서 네이티브로 메세지 보내기.

if(!!window.webkit && !!window.webkit.messageHandlers) {
    window.webkit.messageHandlers.CUSTOM_FUNCTION_NAME.postMessage("자바스크립트에서 보내는 메세지")
}

 

 

안드로이드에서는,

window 객체를 통해서, 안드로이드의 네이티브 class 메소드를 직접 호출 할 수 있다.

 

방법은 아래 링크에 정리해 두었다.

Android Webview 에서 javascript window 객체에 접근해, 네이티브 기능 실행하기

Comments