Android中WebView的一些简单用法_Android

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", <p>zzz</p>, "text/html", "utf-8", "");
    //在同种分辨率的情况下,屏幕密度不一样的情况下,自动适配页面:

与 native 进行交互:

 mWebView.addJavascriptInterface(new WebAppInterface(customView.getContext()),"Android");

 public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
      mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
      // 比如点击 webview加载的html 片段 可以 让应用弹出一个土司
    }

这里给 webview 设置 夜间模式:

也就往 html 页面写入 html 标签 "<div class="night">"

  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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, webview
, 用法
, webview用法
posturl
android webview用法、android 广播简单用法、webview posturl 用法、webview用法、qt webview 用法,以便于您获取更多的相关知识。

时间: 2024-07-30 06:15:55

Android中WebView的一些简单用法_Android的相关文章

Android中WebView的一些简单用法

Android中WebView的一些简单用法 一直想写一个关于 WebView 控件的 一些简单运用,都没什么时间,这次也是挤出时间写的,里面的一些基础知识就等有时间再更新讲解一下,今天就先把项目出来做一些简单介绍,过多的内容可以看我的源码,都传到github上了. 下面是项目的效果图: 应用用到的是 MVP 设计模式,对这种模式还不太了解的可以先自行google一下,不然项目估计会看的晕,虽然我的代码都很简洁的. 对于MVP 可以带着一个思路看源码,那就是 activity(或其他组件)通过

Android开发入门之对话框简单用法_Android

本文实例讲述了Android开发入门之对话框简单用法.分享给大家供大家参考,具体如下: 注:本文只是一个学习笔记 用以记录自己学到哪了 1.获得AlertDialog的静态内部类Builder对象,由此类来创建对话框 2.通过Builder对象设置对话框的标题 按钮以及按钮响应的事件 3.调用Builder的Create()方法创建对话框 4.调用AlertDialog的show()方法显示对话框 main.xml文件 <?xml version="1.0" encoding=&

Android中AutoCompleteTextView与MultiAutoCompleteTextView的用法_Android

本文以实例列举了Android中AutoCompleteTextView与MultiAutoCompleteTextView的使用方法,具体使用方法如下: 首先看AutoCompleteTextView的使用: 支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据.两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开始匹配等等功能.布局文件很简单,如下所示: <LinearLayout xmlns:android="http://sche

Android中WebView常见问题及解决方案汇总_Android

Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是乎,一种混合型的app诞生了,灵活多变的部分,如淘宝商城首页的活动页面,一集凡客诚品中我们都可以见到web页面与native页面的混合,既利用了web app的灵活易更新,也借助了native app本身的效率. 当然,就会用到webview这样的一个控件,这里,我把自己使用过程中遇到的一些问题整理

解析Android中string-array数据源的简单使用_Android

在Android中,用string-array是一种简单的提取XML资源文件数据的方法.例子如下:把相应的数据放到values文件夹的arrays.xml文件里 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <resources>     <string-array name="city">         <item>厦门市</item&

Android中AnimationDrawable使用的简单实例_Android

首先,可以在drawable文件夹下定义一个xml的文件.如下所示: 复制代码 代码如下: <animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="true">    <item android:drawable="@drawable/compass_1" android:duration=&qu

Android中实现Runnable接口简单例子_Android

本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable.run()方法.Runnable对象执行特别操作有时叫作任务. Thread和Runnable都是基础的类,靠他们自己,能力有限.作为替代,Android有强大的基础类,像HandlerThread,AsyncTask,IntentService.Thread和Runnable也是ThreadPoolExecutor的基础类.这个类可以自动管理线程和任务队列,甚至可以并行执行多线程. 定义一个实现Runnable接口的

Android中WebView用法实例分析_Android

本文实例讲述了Android中WebView用法.分享给大家供大家参考,具体如下: WebView相当于一个迷你浏览器,采用WebKit内核,因此完美支持html,javascript,css等. 在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误. 2.如果访问的页面中有Javascript,则webview必须设置支持Javascri

Android中WebView与Js交互的实现方法_Android

获取WebView对象 调用WebView对象的getSettings()方法,获取WebSettings对象 调用WebSettings对象的setJavaScriptEnabled()方法,设置js可用,参数:布尔值 在判断是否支持js的时候,不要用alert(),默认不起作用,可以先用document.write()测试 调用WebView对象的addJavascriptInterface(obj, interfaceName)方法,添加js接口,参数:Object对象,String接口名