728x90
웹뷰와 웹브라우저 간 통신 방법 알아보기!
728x90
1. 웹뷰 -> 웹
- RN
const webviewRef = useRef(null);
// React Native에서 데이터를 웹뷰로 보내는 함수
const sendDataToWebView = (data) => {
console.log(data);
const serializedData = JSON.stringify(data); // 객체를 문자열로 직렬화
webviewRef.current.postMessage(serializedData);
};
- Web
// 웹뷰에서 React Native로부터 데이터를 받는 함수
window.addEventListener("message", (event) => {
const receivedData = JSON.parse(event.data); // 문자열을 객체로 파싱
console.log(receivedData);
// 이후 작업 수행
});
2. 웹 -> 웹뷰
- Web
// RN으로 메시지 전송
window.postMessage(JSON.stringify({ type: 'message', content: 'Hello from the web!' }));
- RN
<WebView
source={{ uri: 'your_webpage_url' }}
onMessage={(event) => {
const message = JSON.parse(event.nativeEvent.data);
console.log('Message from web:', message);
// 이제 이 메시지를 사용하여 원하는 작업을 수행할 수 있습니다.
}}
/>
728x90
'개발 > Javascript & Typescript' 카테고리의 다른 글
[RN] Expo FCM 푸시알림 구현하기 (2) (198) | 2024.06.04 |
---|---|
[RN] Expo FCM 푸시알림 구현하기 (1) (143) | 2024.05.30 |
[React] Vite로 React 프로젝트 만들기 (173) | 2024.05.13 |
[RN] expo eas 관련 명령어 정리 (203) | 2024.05.09 |
[RN] expo 앱 테스트 하기 (188) | 2024.04.25 |