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

웹뷰 자바스크립트 관련 질문 드릴게요 ㅠㅠ

0 추천
http:// ... URL 로 현재 웹뷰를 띄우고 있습니다.

근데 이 웹뷰에 제가 따로 만든 자바스크립트 function 을 적용시켜서 띄우게 하고 싶습니다.

제가 만든 자바스크립트 function 은 assets 폴더에 html 안에 스크립트로 저장해놨는데요..

mWebview.loadUrl("http://....."); 로 띄운뒤 이 웹뷰에 제 폴더에 있는 html 파일안에 있는 자바스크립트 function 을

호출시켜서 적용시키고 싶습니다..

 

개발자분들 조언좀 구하겠습니다..ㅠㅠ
초보개발자쌤 (160 포인트) 님이 2013년 3월 1일 질문

4개의 답변

0 추천
웹페이지를 덤프한다음

작성하신 스크립트를 파일 뒤에 붙여 그걸 웹뷰에 다시 뿌리는 방법으로 가능하지 않을까요?

모든 웹페이지에 범용적으로 적용할 수 있을지는 잘 모르겠습니다
Noizbuster (11,970 포인트) 님이 2013년 3월 1일 답변
답변 감사합니다 ㅠㅠ
하지만..이해가 잘..ㅠㅠ
0 추천
loadUrl("javascript:window.HTMLOUT.pageLoadFinished ...

 

요런식으로 호출하시면 됩니다.
마플 (3,720 포인트) 님이 2013년 3월 2일 답변
앗..감사합니다..^^
뒤 부분 메소드 호출이 어떻게 이루어 지는지.. 자세히 알수 있을까요?
0 추천

mWebview.loadUrl("file:///android_asset/index.html"); 이렇게
어플리케이션에 html을 읽으면 어플리케이션내의 js 파일이나 이미지파일을 읽을수 있지만

mWebview.loadUrl("http://....."); 이렇게 웹상에 html을 로드하면 js 파일이나 어플리케이션내
sdcard 파일내 파일 접근이 가능하지 않습니다.

안드로이드 어플리케이션 보안상 웹상에 html 을 로드했을 경우 로컬 파일을 접근하지 못하도록 해두었습니다.
웹상에 악으적으로 html 내에 javascript로 안드로이드 시스템을 접근하지 못하도록 하기 위해서 인듯 합니다.

파란산타 (180 포인트) 님이 2013년 3월 2일 답변
0 추천

 

해결된 줄 알았는데 아닌가보네요. 다시 답변 달아봅니다. 

loadUrl("javascript:window.HTMLOUT.pageLoadFinished(document.getElementsByTagName('div')[0].scrollWidth, " +

     "document.getElementsByTagName('div')[0].scrollHeight);");
 
위의 소스는 android에 구현한 javascriptinterface를 통해 javascript를 호출하는거구요. 
 
asset폴더에 저장된 스크립트를 호출하고 싶으면
assetmanager를 통해 내용을 읽어온 뒤
javascript:+[실행할 스크립트] 이렇게 넣으시면 됩니다.
 

 

마플 (3,720 포인트) 님이 2013년 3월 3일 답변
...