2012-01-24 3 views

답변

14

실제로 이것은 그리 어렵지 않습니다. 그 (기본적으로 자바 클래스
웹보기는 자바 스크립트 인터페이스를 추가 생성 할 때 : 웹보기 내에서 네이티브 코드를 호출

: 자, 내가 어떻게 페이지 내에서 자바 스크립트와 그 반대에서 네이티브 코드를 호출하는 방법을 보여줍니다 방법은 웹보기에서 자바 스크립트를 통해 호출에 노출 될 것이다.

JavaScriptInterface jsInterface = new JavaScriptInterface(this); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(jsInterface, "JSInterface"); 

자바 스크립트 인터페이스 클래스 자체의 정의 (이것이 내가 내 다른 답변에서했다 네이티브 의도에서 비디오를 열고 대표적인 클래스)

public class JavaScriptInterface { 
    private Activity activity; 

    public JavaScriptInterface(Activity activiy) { 
     this.activity = activiy; 
    } 

    public void startVideo(String videoAddress){ 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file 
     activity.startActivity(intent); 
    } 
} 

이제이 코드는 다음과 같은 방법을 제공하는 페이지의 HTML 형성 호출 할 경우 :

<script> 
    function playVideo(video){ 
     window.JSInterface.startVideo(video); 
    } 
</script> 

쉬운 그렇지를?

네이티브 코드에서 자바 스크립트 코드를 호출 :

<script> 
    function function(){ 
     //... do something 
    } 
</script> 

그런 다음 당신은 웹보기를 통해이 함수를 호출 :
이것은 당신이 자바 스크립트 함수가 정의한 또한 웹보기에로드 된 HTML의 코드에서 가정하자 간단을 같은 네이티브 코드 :

webView.loadUrl("javascript:function()"); 
+0

안녕하세요. 감사합니다. Boris : D 정확히 내가 찾고있는 것입니다. 당신이 아주 좋은 간단한 방법으로 자세히 쓴 것을 정말 좋아합니다. Jgd, God Bless you : – Prax

+0

네이티브 코드의 자바 스크립트 코드가 작동하지만, 자바 코드에서 Java 코드로 값을 반환하기 위해 어떻게 변경합니까? – user280109

+0

@ user280109 : 호출시 매개 변수 값을 추가해야합니다. 다음은 예입니다 : http://stackoverflow.com/a/4330642/1108032 –

0

는 여기에 폰갭 플러그인을 만들기위한 tutorial을합니다. ChildBrowser 플러그인을위한 instructions도 특히 좋습니다.

관련 문제