728x90
반응형
요새 안드로이드로 webview안에서 event를 감지하는 것을 적용하다가, 예전에 React Native 를 이용해서 는 어떻게 해놓았었는지 문득 궁금해서 소스 코드를 찾아보았다
const onWebViewMessage = NativeEvent => {
if (
!util.is_empty(NativeEvent?.nativeEvent?.data) &&
JSON.parse(NativeEvent.nativeEvent.data).hasOwnProperty('type') &&
JSON.parse(NativeEvent.nativeEvent.data).type === 'exit'
) {
console.log(
'NativeEvent.nativeEvent.data',
JSON.parse(NativeEvent.nativeEvent.data).type,
);
exitFromWeb();
}
if (
!util.is_empty(NativeEvent?.nativeEvent?.data) &&
JSON.parse(NativeEvent.nativeEvent.data).hasOwnProperty('language')
) {
// changedLangFromWeb(JSON.parse(NativeEvent.nativeEvent.data).language);
}
};
const onWebViewError = e => {
util.spineer_hide();
console.log('WebView error: ', e);
};
해당 함수들을
{visible && (
<WebView
onLoadEnd={onWebViewEndLoading}
onMessage={onWebViewMessage}
onError={onWebViewError}
ref={webViewRef}
source={{uri: route.params.my_url}}
/>
)}
안에 등록 해놓었다.
728x90
반응형