如果webview html内容的<img>
标签很少,那么当用户在网页浏览中点击图片时,是否可以在新活动中以全屏模式打开该图片?
答案 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中调用代码。