Android使用WebView实现图片点击的监听
来源:互联网 发布:短信端口号查询 编辑:程序博客网 时间:2024/05/18 00:20
Android使用WebView实现图片点击的监听
话不多说,直接进入主题。
第一步
首先我们需要写一个监听时间的java类,如下:
/** * 图片的点击事件调用的方法 */ class ImageInterface { @JavascriptInterface public void onImageClick(String imgUrl) { Toast.makeText(MainActivity.this, imgUrl, Toast.LENGTH_LONG).show(); } }
第二步
这里需要对webview做一定的设置和处理:
private WebView mWebView;private WebSettings mWebSettings;mWebView = (WebView) findViewById(R.id.wv);//获得webview的settingmWebSettings = mWebView.getSettings();//设置对js的支持mWebSettings.setJavaScriptEnabled(true);//加载webview的内容mWebView.loadData(html+js,"text/html","utf-8");//最关键的方法,添加一个js的接口,第一个参数为对象,第二个可以理解为对象的名字,后面在js中可以直接使用这个去调用方法mWebView.addJavascriptInterface(new ImageInterface(), "wv");
第三步
要实现网页的内容能够被安卓监听到,那么我们要把第二步设置的接口在js里面表明:
private String js = "<style>img{max-width:100%;height:auto;} p{line-height:150%;}</style><script>var imgs=document.getElementsByTagName('img');for(var i=0;i<imgs.length;i++){imgs[i].onclick=function(){wv.onImageClick('click');alert('123');};}</script>"; private String html = "<img src='http://resonlei.top/photo/c.jpg'></img>";
注意到上面的script里面,我获取了所有的img标签,并且为所有的img标签都设置了一个点击事件,
<script> var imgs=document.getElementsByTagName('img'); for(var i=0;i<imgs.length;i++){ imgs[i].onclick=function(){ wv.onImageClick('click');//这里就是代码的关键,表示调用java代码的这个方法 }; }</script>
结语
好了,一共就是三个简单的步骤,就可以实现对于webview内容的监听,其他的监听也可以通过类似的方法去实现,不再赘述。这种方法就跟java里面的回调机制是一个思路,只不过一部分编程了其他的内容,不要忘记在java的方法中添加@JavascriptInterface
标记哦!
阅读全文
0 0
- Android使用WebView实现图片点击的监听
- Android---webview实现网页的点击跳转
- android webview图片点击事件
- Android点击WebView中的图片实现缩放及滑动浏览
- Android webview监听网页对话框点击事件
- ViewPager广告中的图片请求自网络,监听跳转至点击图片对应Url的webView
- android 点击监听,替换图片
- 监听WebView的各种点击事件
- Android webview图片点击事件 查看图片
- Android点击WebView中的图片获取指定标签段的所有图片实现缩放及滑动浏览-PhotoView
- Android 获取WebView的HTML图片点击及查看
- 实现WebView中点击图片显示大图
- Android实现图文混排(2) 通过webview实现 并实现点击 图片处理事件
- Android 实现WebView点击图片查看大图列表及图片保存
- Android 实现WebView点击图片查看大图列表及图片保存
- android 关于WebView点击图片展示大图
- android 关于WebView点击图片展示大图
- Android点击WebView中的图片查看大图
- js继承
- Kaggle-ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
- 配置静态nat
- [数论]线性求所有逆元的方法
- EL表达式方法的使用
- Android使用WebView实现图片点击的监听
- Shopping Offers
- sql学习记录
- fdisk入门
- linux中动态库的编译和加载的查找顺序
- mybatis insert多级List级联类 之(批量插入返回主键集合)使用《示例》下
- eclipse 和 交叉工具链构建嵌入式应用编译及调试环境
- JavaScript权威指南(第6版)
- JavaWeb入门-----Http协议