2012-03-15 38 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接口類本身的定義(這是實施例一類,我從我的另一個回答了,並在本地意圖打開視頻)

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

現在,如果喲想調用這個代碼的形式

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

所以,你需要適當的方法添加到JSInterface,從內部調用代碼:你提供以下方法頁面的HTML Web應用程序。