2012-03-15 12 views

答えて

3

はいです。基本的にWebViewの中から任意の種類のネイティブAndroidコードを呼び出すことができます。呼び出しのために公開するメソッドをクラス内のWebViewから定義し、このクラスのインスタンスをWebViewに渡します。その後、メソッドはjavascriptメソッドのように呼び出し可能です。ここでの例は、(これは私の他の回答のコピー&ペーストの形であり、あなたは、画像の表示を意図してビデオの意図を交換する必要があります)来る:

ウェブビュー内からネイティブコードを呼び出す:ウェブを作成する場合は
をビューは、javascriptインターフェイス(基本的にJavaクラスで、Webビューでjavascriptを介して呼び出されるメソッドが公開されます)を追加します。今

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

javascriptのインタフェースクラス自体の定義(これは私が私の別の答えから取ったexamplaryクラスであり、ネイティブの意思で動画を開きます)

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); 
    } 
} 

yoがこのコードのフォームをコールする場合ですから、JSInterfaceに適切なメソッドを追加し、内からコードを呼び出す必要が

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

:ページのHTMLは次のような方法を提供しますWebアプリケーション

関連する問題