728x90
환경
- cordova
코르도바 하이브리드로 개발하던중 팝업창을 만들고 팝업창이 닫힐때 팝업창에서 데이터를 전송해서 가져오고 싶었다.
그냥 window.open()으로 해서 가져오면 안되나 싶었는데 그렇게 되지는 않는다
결국 플러그인 설치해서 inappbrower로 팝업창을 띄워야된다....
플러그인 설치
cordova plugin add cordova-plugin-inappbrowser
다른곳 보면 아래와 같이 가져오는 경우가 많다 inappbrower에서는 undefined으로 찾을수가 없다고 한다.
var popup = window.open(url, '_blank', 'location=yes')
console.log(popup.document.getElementById('div'));
해결
그래서 inappbrower 개발문서를 열심히 보고 또 보고 한 결과 찾았다! executeScript를 사용했는데, 팝업창 열린걸 자식창이라고하고 원래 창을 부모창이라고 편하게 지칭을 하면 자식창에 script를 추가하고 완료되면 함수를 실행하는 옵션이라구한다!
popup = window.open(url, '_blank', 'location=yes');
popup.addEventListener('loadstop', function(e){
var code = `(function(){
var return-code = $("#div").innerHTML;
return return-code;
})()
popup.executeScript({
code: code
}, function(return_val){
console.log(return_val) /* $("#div").innerHTML */
})
})
정리해서 보면 간단한거같은데 몇시간을 낭비한건지 9ㅅ9
* 참고 https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/
728x90
'FRAMEWORK > CORDOVA' 카테고리의 다른 글
cordova 팝업창 net::ERR_CLEARTEXT_NOT_PERMITTED 오류 (0) | 2020.03.16 |
---|---|
splash 및 app icon 크기 자동 변환 사이트 (0) | 2020.03.13 |
Cordova 네트워크 접속 확인 (0) | 2020.02.25 |
내가 만든 웹페이지에서 회원탈퇴시 페이스북 권한 해제 하기 (2) | 2020.01.30 |
Cordova로 Facebook Login을 연동해보자! (0) | 2020.01.29 |