개발
react-native WebView내 window.close();
고양이양말
2022. 8. 22. 10:47
웹에서의 window.close() 사용을 잡아채 postMessage로 앱에 전달한다.
const INJECTEDJAVASCRIPT = 'const { close: _close } = window; window.close = function() { window.ReactNativeWebView.postMessage("closeWebview"); _close();};';
...
const handleMessage = async (e) => {
const strEvent = e.nativeEvent.data;
//console.log('@#@#', strEvent);
switch(strEvent) {
case 'closeWebview':
handleClose(); // 웹뷰 close 할 함수 만들어서 호출하기
break;
}
};
...
<WebView
source={{uri:loadLink,
headers: {'authorization' : token, 'User-Agent':userAgent+ENV.version}
}}
javaScriptEnabled={true}
injectedJavaScript={INJECTEDJAVASCRIPT}
onMessage={handleMessage}
/>