在全屏模式下从WebView打开图像

时间:2012-03-15 11:45:26

标签: android android-webview

如果webview html内容的<img>标签很少,那么当用户在网页浏览中点击图片时,是否可以在新活动中以全屏模式打开该图片?

1 个答案:

答案 0 :(得分:3)

是的。基本上可以从WebView内调用任何类型的原生Android代码。您可以在类的WebView中定义要公开的方法,将此类的实例传递给WebView,然后就像javascript方法一样调用方法。这里是示例(这是我的另一个答案的复制粘贴;您将需要用图像显示意图替换视频意图):

从网络视图中调用本机代码:
在创建Web视图时添加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);
    }
}

现在如果你想通过页面的html调用这段代码,你可以提供以下方法:

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

因此,您需要将适当的方法添加到JSInterface并从Web App中调用代码。