마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹뷰에서 자바스크립트의 함수를 호출하고 싶습니다

0 추천

하이브리드는 처음이라 이해력이 다소 부족합니다..

조언 좀 해주시면 감사하겠습니다.

기존에는 웹뷰로 php페이지를 띄워서 버튼을 누르면 파일링크를 추출하여 

그 링크값을 토대로 파일을 다운받는 작업을 했었습니다.

(버튼을 오른쪽 클릭하면 링크주소복사 메뉴가 떴습니다.)

하지만.. 새로 바뀐 페이지에서는 더 이상 버튼으로 링크값을 받을 수 없습니다.

페이지 소스 확인해보기로 소스를 보니 아래와 같이 변경되었습니다.

아마 링크를 보유한 버튼에서 이벤트를 발생하는 버튼으로 변경된 것 같습니다.

자바스크립트를 많이 다뤄보지 않아 자세히는 모르겠지만 제가 이해한 바로는 이렇습니다.

1.다운로드 버튼을 눌렀을 때 downloadAll()함수로 이동. 변수suffix는 1.

2.downloadAll함수에서 x가 체크되었을 때만 downloadDataUrl로 이동한다.

확인해보니 x.value값은 기존의 파일링크값입니다.

3.하단에서 다운로드 작업을 수행.

이런식으로 진행되는 것 같은데..

제가 원하는 것은 체크된 파일의 링크값들입니다.

하나만 체크되면 한개의 링크만, 두개면 두개의 링크값..이렇게요.

현재 소스만으로 제가 java에서 x.value값을 구할 수 있는게 가능한가요?

아니면 해당 자바스크립트를 구현한 분한테 따로 요청을 해야하나요?

<div class="container text-right">
				<a class="btn btn-success pull-right" onclick="suffix=1;downloadAll()">다운로드</a>
			</div>	


function downloadAll(){
		var ID = "file" + (suffix++);
		var x = document.getElementById(ID);
		if (x.checked){
			downloadDataUrl(x.value);
			setTimeout(function(){downloadAll()}, 1000);
		}
		else {
			downloadAll();
		}
}
function downloadDataUrl(dataUrl) {
    var link = document.createElement("a");
    link.href = dataUrl;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    delete link;
}

 

ㅎㅎ 님이 2017년 8월 7일 질문
1. java 에서 해당 method 를 call 할수는 있지만 그 값을 조정하긴 어려워 보입니다.
2. 그 이유는 click 시 suffix 값을 정의하고 있기 때문이구요 이럴거면 새로 method 하나 만들고 java 에서 call 시 suffix 값을 계산해서 전달하도록 하는것도 하나의 방법일듯요

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...