Android中WebView的一些简单用法
Android中WebView的一些简单用法
一直想写一个关于 WebView 控件的 一些简单运用,都没什么时间,这次也是挤出时间写的,里面的一些基础知识就等有时间再更新,今天就先把项目出来做一些简单介绍,过多的内容可以看我的源码,都传到github上了。
下面是项目的效果图:
应用用到的是 MVP 设计模式,对这种模式还不太了解的可以先自行google一下,不然项目估计会看的晕,虽然我的代码都很简洁的。
对于MVP 可以带着一个思路看源码,那就是 activity(或其他组件)通过 xxPresenter 去拿数据,拿到数据 在 xxPresenter 再利用 xxIView(这是一个接口)更新数据,那么activity(或其他组件)继承 xxIView 这个接口 就可以 更新UI 了
其实 WebView 只用到一些简单的,深入应用本篇文章会在更新!
其中:
//设置WebView的一些缩放功能点 webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.setHorizontalScrollBarEnabled(false); webView.getSettings().setSupportZoom(true); //设置WebView可触摸放大缩小 webView.getSettings().setBuiltInZoomControls(true); webView.setInitialScale(70); webView.setHorizontalScrollbarOverlay(true); //WebView双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小 //webView.getSettings().setUseWideViewPort(true); //提高渲染的优先级 webView.getSettings().setRenderPriority(RenderPriority.HIGH); //允许JS执行 webView.getSettings().setJavascriptEnabled(true); //把图片加载放在最后来加载渲染 //webView.getSettings().setBlockNetworkImage(true); //用WebView将字符串以HTML的形式显示出来 //webView.loadDataWithbaseURL("fake://not/needed",zzz
, "text/html", "utf-8", ""); //在同种分辨率的情况下,屏幕密度不一样的情况下,自动适配页面:
与 native 进行交互:
mWebView.addJavascriptInterface(new WebAppInterface(customView.getContext()),"Android"); public class WebAppInterface { Context mContext; WebAppInterface(Context c) { mContext = c; } @JavascriptInterface public void showToast(String toast) { // 比如点击 webview加载的html 片段 可以 让应用弹出一个土司 }
这里给 webview 设置 夜间模式:
也就往 html 页面写入 html 标签 ""
public static String buildHtmlWithCss(String html, String[] cssUrls, boolean isNightMode) { StringBuilder result = new StringBuilder(); for (String cssUrl : cssUrls) { result.append(String.format(CSS_link_PATTERN, cssUrl)); } if (isNightMode) { result.append(NIGHT_DIV_TAG_START); } result.append(html.replace(DIV_IMAGE_PLACE_HOLDER, DIV_IMAGE_PLACE_HOLDER_IGNORED)); if (isNightMode) { result.append(NIGHT_DIV_TAG_END); } return result.toString(); }
项目还得有待改进,等这段时间忙完就跟新!!!!
项目源码 github
相关文章
- 2023-06-13支付宝“AR实景红包” 怎么玩 ? 驱动小编亲身体验AR实景找红包?
- 2023-06-13《流浪地球2》太上头!互联网还能拯救地球?
- 2023-06-132016王菲VR演唱会 天后级VR直播体验你要试试吗?
- 2023-06-13PS4《最后守护者》终于要发售了:苦等10年!
- 2023-06-11为什么要重装系统?怎么一键重装系统?
- 2023-06-11哪一款笔记本电脑最适合你?驱动小编来推荐
- 2023-06-11安装声卡驱动后还是没声音?Win10怎么区分新旧面板?
- 2023-06-11intel UHD750显卡驱动安装失败,视频控制器兼容解决方案
- 2023-06-11电脑升级后开不了机?一键解决
- 2023-06-08海尔冰箱怎么除霜 海尔冰箱除霜办法介绍?
- 2023-06-08空调毛细管堵塞会出现什么现象-
- 2023-06-08热水器故障与维修办法介绍
- 2023-06-08万利达电磁炉通电有蜂鸣声,开机不工作故障检修
- 2023-06-08电风扇的发明及工作原理
- 2023-06-08小鸭洗衣机怎么样 小鸭洗衣机性能评测【详细步骤】?