React native 와 webView 데이터 통신
회사에서 react natve에서 webview를 띄워주고 webview안에서 액션이 있을경우 react native로 return값을 줘야하는 작업이 있었다. 그래서 어떤 식으로 메시지를 주고받을 수 있는지 알아보게 되었다.
기본적으로 에서 사용할 수 있는 API는 3가지가 있다.
1. injectedJavaScript
WebView안에서 실행할 JavaScript 코드를 삽입할 수 있다.
<WebView
source={require('./resources/index.html')}
injectedJavaScript={'(function(){return "Send me back!"}());'}
onNavigationStateChange={(navEvent)=> console.log(navEvent.jsEvaluationValue)}
/>
2. injectJavaScript
반환 값 없이 WebView에서 즉시 실행되는 JavaScript 코드를 삽입할 수 있다.
3. onMessage/postMessage
실제적인 양방향 통신을 위한 API이다.
React native 쪽에서 onMessage를 통해 WebView의 postMessage를 호출하면 데이터를 받는 형식이다.
<WebView
source={require('./resources/index.html')}
onMessage={(event)=> console.log(event.nativeEvent.data)}
/>
'React-Native' 카테고리의 다른 글
[React-Native] 리액트 네이티브 Axios로 웹서버 http 통신(요청)하기 (0) | 2019.10.19 |
---|---|
[React-Native] 리액트 네이티브(react-native) 프로젝트 시작하기 (0) | 2019.10.16 |
[React-Native] react-navigation 사용하여 화면 간 이동하기 (5) | 2019.10.15 |
[React-Native] 리액트 네이티브(react-native) 구글 로그인 연동하기 (0) | 2019.10.12 |
[React-Native] React native 와 WebView 데이터 통신 에러 (0) | 2019.06.20 |