안 드 로 이 드 호출 JS 가 실 패 했 을 때 가능 한 이유

클 라 이언 트 는 JS 를 호출 하고 앞 뒤의 상호작용 을 완성 하 며 전단 의 인터페이스 등 을 업데이트 해 야 합 니 다.일반적으로 다음 한 마디 만 호출 하면 JS 의 알 리 페 이 콜 백 (alipay CallBack) 방법 을 호출 할 수 있다.
String msg = "message";  
webView.loadUrl("javascript:showInfoFromJava(" + msg + ")");  

하지만 기능 이 실 현 됐 을 때 실패했다.웹 신문 이 오류: 웹 console uncaught referenceerror: message is not defined at null: 1 은 웹 이 message 를 변수 값 이 아니 라 변수 이름 이 라 고 생각 한 다 는 뜻 입 니 다.찾 아 보 니 JS 가 String 변 수 를 정의 할 때 작은 따옴표 를 사용 하고 JAVA 는 작은 따옴표 를 사용 합 니 다.그래서 코드 를
String msg  = "message";  
webView.loadUrl("javascript:showInfoFromJava('" + msg + "')");  

따옴표 추 가 를 통 해 JS 는 message 가 변수 이름 이 아니 라 변수 값 이라는 것 을 알 수 있 습 니 다.인자 가 포 함 된 JS 방법 을 호출 할 때 이 문제 가 발생 하기 쉽다.인자 가 없 는 JS 방법 이 라면 직접 쓰 면 된다.예 를 들 어 쇼 인 포 프 롬 자바 () 방법 을 직접 호출 했다.
webView.loadUrl("javascript:showInfoFromJava()");  

안 드 로 이 드 호출 JS 방법 은 두 프로 그래 밍 방법 에서 변수 가 다 르 게 나타 나 는 것 을 주의 하 십시오.
그리고 다른 4 가지 경우 JS 호출 에 실패 할 수도 있 습 니 다. 다음 과 같이 요약 합 니 다. 1. webView. getSettings (). setJavaScriptEnable (true);webView 지원 JavaScript 2. webView 를 설정 합 니 다. addJavascriptInterface (new JScallBack (), "JScallBack");자바 대상 웹 뷰 를 연결 하 는 것 은 자바 대상 을 웹 JS 와 연결 하 는 것 입 니 다.3. JScallBack 클래스 에 @ JavascriptInterface 주 해 를 추가 하고 android. webkit. JavascriptInterface 를 가 져 옵 니 다.4. ManiFeast 를 검사 하고 android: targetSdkVersion 을 17 및 1 로 변경 합 니 다.
Html 코드 첨부:
<html>
<body>
<script type="text/javascript">
            var a = document.documentElement.clientHeight;
            document.getElementById("id").style.height = a+"px";
script>
<script>
          function showInfoFromJava(msg){
                alert(msg);
          }
script>
body>
html>

좋은 웹페이지 즐겨찾기