2012-03-15 51 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应用程序。