AndroidWebView的使用
来源:互联网 发布:ubuntu中文输入 编辑:程序博客网 时间:2024/06/04 23:42
android Webview 的使用
private WebSettings webSettings;private JavaScriptInterface javascriptInterface;
javascriptInterface = new JavaScriptInterface(this);webSettings = webView.getSettings();//是否支持jswebSettings.setJavaScriptEnabled(true);// 设置支持缩放webSettings.setSupportZoom(true);//显示图片时自适应屏幕大小,但是4.4以前好用,4,4以后不好用//mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//weView中有链接,在当前 browser 中相应webView.setWebViewClient(new MyWebViewClient());//设置进度条,处理提示框webView.setWebChromeClient(new MyWebChromeClient());//添加监听webView.addJavascriptInterface(javascriptInterface, "imagelistner");webView.loadDataWithBaseURL(null,bean.getContent(), "text/html", "utf-8", null);
// js通信接口public static class JavaScriptInterface { private Context context; public JavaScriptInterface(Context context) { this.context = context; } //点击图片回调方法 //必须添加注解,否则无法响应 @JavascriptInterface public void openImage(final String img) { System.out.println(img); Log.i("TAG", "响应点击事件!"); Intent intent = new Intent(); intent.putExtra("image", img); System.out.println(img); ((Activity) mContext).runOnUiThread(new Runnable() { @Override public void run() { showImg(img); } }); } public void showImg(final String img) { final AlertDialog dialog = new AlertDialog.Builder(mContext).create(); final ImageView imgView = getImageView(); Glide.with(mContext).load(img).placeholder(R.mipmap.loading_placeholder_img).crossFade().into(imgView); dialog.setView(imgView); dialog.show(); imgView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); } private ImageView getImageView() { ImageView imgView = new ImageView(mContext); imgView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); imgView.setScaleType(ImageView.ScaleType.FIT_XY); return imgView; }}
private class MyWebViewClient extends WebViewClient { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); // html加载完成之后,添加监听图片的点击js函数 addImageClickListner(); imgReset(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }}/** * 循环遍历标签中的图片 * js 语法 */private void imgReset() { webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagName('img'); " + "for(var i=0;i<objs.length;i++) " + "{" + "var img = objs[i]; " + " img.style.maxWidth = '100%'; " + "}" + "})()");}/** * 设置进度条和提示框 */private class MyWebChromeClient extends WebChromeClient { //该方法中可以设置进度条 @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); } //发方法中可以处理提示框 @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); }}// 注入js函数监听private void addImageClickListner() { // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去 webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagName(\"img\"); " + "for(var i=0;i<objs.length;i++) " + "{" + " objs[i].onclick=function() " + " { " + " window.imagelistner.openImage(this.src); " + " } " + "}" + "})()");}
0 0
- AndroidWebView的使用
- 使用Xposed强制androidwebView开启debug
- AndroidWebView总结
- AndroidWebView的销毁和无法加载天猫网页的问题
- 安卓学习笔记---AndroidWebview里设置Cookie遇到的坑
- (转)安卓学习笔记---AndroidWebview里设置Cookie遇到的坑
- AndroidWebView实例详解
- AndroidWebView 加载网页页面
- AndroidWebView设置缓存方式
- androidwebview与js相互调用
- Androidwebview加载本地html网页
- AndroidWebView中Header与Cookie应用场景深入剖析
- Android WebView播放视频(包括全屏播放),androidwebview
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- 80%的程序员不了解的调试技巧
- Android 控件描边只描一边
- numpy 教程
- NSObject头文件解析
- 版本的比较
- AndroidWebView的使用
- Linux 常用命令
- Android基础——适配安卓6.0新权限系统
- 2、swift开发iOS——swift语法
- 最纯粹的直播技术实战03-通过filter进行旋转及卡顿修复
- Android 实现底部弹出菜单
- 461 Hamming distance
- System.Web.Optimization 合并压缩技术的使用(转载)
- R语言入门-R语言环境安装与Rstudio安装