안녕하세요
웹뷰에서 회원가입에 있는 휴대폰 본인인증하려고 하는데요 그냥 기본브라우저로 들어가서 인증하면 정상적으로 값이 잘 넘어오는데요. 안드로이드 웹뷰로 만든 apk파일에서는 값이 넘어오지가 않네요...
몇가지 시도를 해보고있는데어떻게 해야할까요?,,,
1. 본인인증 창을 iframe 을 이용하여 시도 ->실패. 이유: 결과값 리턴하는 hpcert2.php 에서 제대로 못넘김
2. callBrowser, callChrome 을 이용해서 새로운 외부 브라우저로 열려고 하는 방법이 있다는데 이건 어떻게 써야할지 모르겠네요..
3. hpcert2.php 에 리턴하는 곳에 $("input[name=name]", parent.document.body).val() 과 같이 해보았는데 안되네요. opener 문제로 웹뷰에서 값이 잘 전달되지 않는다고 하는데 참 어렵네요..
다음은 제가 수정한 코드입니다.
모바일로 접속하여 인증버튼 클릭시 iframe 이 작동되게 하였습니다.
Copy
----register_form.skin.php-------- <div> <iframe id="hp1" src="/plugin/okname/hpcert1.php" frameborder="yes" style="position:absolute;top:0%;left:0%;visibility:hidden;z-index: 10;" height="90%" width="100%"></iframe> </div><script> $("#win_hp_cert").click(function() { if(!cert_confirm()) return false; var hp1 = document.getElementById("hp1"); var hp2 = document.all.hp1.style.visibility = 'visible'; <?php switch($config['cf_cert_hp']) { case 'kcb': if(preg_match("/".G5_MOBILE_AGENT."/i", $_SERVER['HTTP_USER_AGENT'])) { echo "hp2"; break; }else { $cert_url = G5_OKNAME_URL.'/hpcert1.php'; $cert_type = 'kcb-hp'; break; } </script>--------------------------------------------------------------hpcert2.php----------<script> $(function() { if(preg_match("/".G5_MOBILE_AGENT."/i", $_SERVER['HTTP_USER_AGENT'])) { $("input[name=mb_hp]", parent.document.body).val("<?php echo $phone_no; ?>").attr("readonly", true); }else{ var $opener = window.opener; $opener.$("input[name=cert_type]").val("<?php echo $cert_type; ?>"); $opener.$("input[name=mb_name]").val("<?php echo $mb_name; ?>").attr("readonly", true); $opener.$("input[name=mb_hp]").val("<?php echo $phone_no; ?>").attr("readonly", true); $opener.$("input[name=cert_no]").val("<?php echo $md5_cert_no; ?>"); alert("본인의 휴대폰번호로 확인 되었습니다."); window.close(); } });</script>
끝까지 읽어주셔서 감사합니다~(__)
답변 1개
채택된 답변
+20 포인트
Lemios
2017-05-11 (목) 11:56:07
웹뷰 깨작거려본 경험으로 말씀드리자면
새창으로 뜨는 부모 자식끼리는 데이터가 안넘어가서 레이어와 아이프래임으로 짰었던 기억이 납니다.
소스상에서 자바스크림트 허용인지 확인해보시고 레이어방식으로 구현하시면 가능할것으로 보입니다.
답변을 작성하려면 로그인이 필요합니다.