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

jsp -> webview 질문 드려도 될까요?

0 추천

jsp json 결과를 webview로 전해주려고 합니다. json 데이터가 제대로 가지 않아 질문드립니다.

final class MyJavaScriptInterface {
	    MyJavaScriptInterface() {
	 
	    }
	 
	    /**
	     * This is not called on the UI thread. Post a runnable to invoke
	     * loadUrl on the UI thread.
	     */
	    @JavascriptInterface
	    public void callAndroid(final String str) {
	        mHandler.post(new Runnable() {
	            public void run() {
	                System.out.println("requestData  : " + str);
	                finish();
	            }
	        });
	 
	    }
	}
<script type="text/javascript">

function returnData(jsonData) {
	window.resultData.callAndroid(jsonData);
}

</script>


/          Map<String , Object> map = new HashMap<String, Object>();
         for (int i = 0; i < xpay.ResponseNameCount(); i++)
         {
             out.println(xpay.ResponseName(i) + " = ");
             for (int j = 0; j < xpay.ResponseCount(); j++)
             {
                 out.println("\t" + xpay.Response(xpay.ResponseName(i), j) + "<br>");
                 jsonObject.put(xpay.ResponseName(i), xpay.Response(xpay.ResponseName(i), j));
             }
         }
         out.println(jsonObject);
         
         out.println("<script>");
//          out.println("returnData(jsonObject);");
         out.println("returnData("+jsonObject+");");
         out.println("</script>");

String 만 넘겼을 때는 그대로 나오는데 json 형태로 넘기려니 undefined 가 뜨네요.

heopsop (280 포인트) 님이 2015년 8월 3일 질문
heopsop님이 2015년 8월 3일 수정

1개의 답변

0 추천
JavaScriptInterface의 파라미터는 기본형밖에 지원하지 않습니다.

그냥 문자열로 보내고 Java 쪽에서

JSonObject obj = new JSONObject(str);

이렇게 쓰세요.
코딩인헬 (12,150 포인트) 님이 2015년 8월 4일 답변
...