
😇 문제상황
🥹 해결 방법
1. 나이스인증 전용 webView 스택을 하나 만든다
<RootStack.Screen
name="NicePayWebView"
component={NicePayWebViewConitainer}
options={{
animationEnabled: true, // 애니메이션 비활성화
}}
/>
window.ReactNativeWebView?.postMessage(
JSON.stringify({type: 'callCheckPlusSubmit', value: encData})
);
const sourceURL = (
{
uri: 'https://nice.checkplus.co.kr/CheckPlusSafeModel/checkplus.cb',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: `m=checkplusService&EncodeData=${data.value}`,
});
const pushAction = StackActions.push('NicePayWebView', {
sourceURL: sourceURL,
encodeData: data.value
});
navigation.dispatch(pushAction);
// mobile일때
if(util.getUserAgent() === 'android' || util.getUserAgent() === 'ios') {
window.ReactNativeWebView?.postMessage(
JSON.stringify({type: 'nicePayInSignin', value: {
encodeData: encodeData,
successYn: successYn
}})
);
} else { // web일때
opener.resultCheckPlus(encodeData, successYn);
}
navigation.navigate('defaultWebView', {
encodeData: data.value.encodeData,
success: data.value.successYn
});
webview?.current?.postMessage(
JSON.stringify({
type: 'nicePayInSignin',
encodeData: route.params.encodeData,
success: route.params.success
}),
);
