-
Javascript) 웹 과 각 네이티브(Android,iOS) 통신하기(Bridge)Programing Language/JavaScript 2021. 10. 19. 16:49728x90반응형
Javascript
var isMobile = { Android: function () { return navigator.userAgent.match(/Chrome/) == null ? false : true; }, iOS: function () { return navigator.userAgent.match(/iPhone|iPad|iPod/i) == null ? false : true; }, any: function () { return (isMobile.Android() || isMobile.iOS()); } }; try{ if(isMobile.any()) { if(isMobile.Android()) { window.fcmRegister.getUserEmail(user_info.user_email); } else if (isMobile.iOS()) { window.webkit.messageHandlers.fcmRegister.postMessage(user_info.user_email); } } } catch (e){ console.log(e) }
Android(Kotlin)
lateinit var mainWebview: WebView mainWebview.addJavascriptInterface(WebBridge(this), "fcmRegister") class WebBridge(private val mContext: Context) { @JavascriptInterface fun getUserEmail(user_email: String) { Log.d("WebBridge", "getUserEmail: $user_email ") } }
iOS(Swift)
(webview의 구체적인 크기 설정은 pure code로 진행하여 하단 박스에 넣지 않았습니다.)var webview : WKWebView? let userContentController: WKUserContentController = WKUserContentController() let preferences = WKPreferences() preferences.javaScriptCanOpenWindowsAutomatically = true userContentController.add(self, name: "fcmRegister") config.userContentController = userContentController config.preferences = preferences webview.uiDelegate = self webview.navigationDelegate = self webview = WKWebView(frame: CGRect.zero, configuration: self.config) //MARK: - webDelegate 모음 extension ViewController : WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler, UIScrollViewDelegate { func userContentController(_ userContentController: WKUserContentController,didReceive message: WKScriptMessage) { if message.name == "fcmRegister"{ print("\(message.body)") } } }
도움 되셨다면 하단의 광고 클릭부탁드리겠습니다.
728x90반응형'Programing Language > JavaScript' 카테고리의 다른 글
JavaScript) Express에 Redis로 Cache 적용해보기 (0) 2021.11.14 JavaScript)이메일 정규표현식 구현하기 (0) 2021.11.10 JavaScript) 브라우저 창 새로고침 이후에도 스크롤 유지하기 (0) 2021.10.05 javaScript) ** 의 의미 (0) 2021.07.22 javaScript) 랜덤 수로 최대, 최소 값 구하기 (0) 2021.07.16