一起Talk Android吧(第三百四十二回:WebView基本用法)

Posted talk_8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第三百四十二回:WebView基本用法)相关的知识,希望对你有一定的参考价值。

各位看官们,大家好,上一回中咱们说的是android中使用浏览器的例子,这一回中咱们说的是WebView的例子。闲话休提,言归正转。让我们一起Talk Android吧!

WebView是什么

看官们,我们在上一章回中介绍如何使用浏览器来解析服务器返回的数据,本章回将介绍WebView控件,它可以像浏览器一样发起HTTP请求并且解析服务器返回的数据,不过它不像浏览器一样属于单独的应用程序,它是一个UI控件,它可以直接访问网络。当我们开发程序时需要访问网站上的内容,可以通过当前程序跳转到浏览器来访问,也可以在程序内添加WebView控件直接访问网络。

如何使用WebView

接下来我们介绍一下如何使用WebView来直接访问网络。

  • 1.在manifest文件中添加网络权限:INTERNET;
  • 2.在布局文件中添加控件,添加方法和其它控件一样;
  • 3.在代码中获取控件,并且打开javascript脚本支持功能;
  • 4.创建WebViewClient实例并且将其绑定到WebView控件上;
  • 5.访问具体的网站;

光说不练不是我们的风格,示例代码如下,请大家参考:

    //添加权限声明
    <uses-permission android:name="android.permission.INTERNET" />
  
    //xml中添加控件
    <WebView
        android:id="@+id/id_webview"
        android:layout_width="match_parent"
        android:layout_height="500dp">
    </WebView>

  //代码中使用控件
    WebView = (WebView)findViewById(R.id.id_webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    
    mWebView.setWebViewClient(new WebViewClient() 
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) 
            return super.shouldOverrideUrlLoading(view, request);
        
    );
        
    mWebView.loadUrl("https://www.baidu.com");

看官们,我上面的代码添加到你的程序中然后编译运行就可以在程序中直接访问百度了,我在这里就演示程序运行结果了,建议大家自己动手去实践 。

在使用过程中有以下内容需要注意:

  • 1.网络权限必须添加,不然访问网络时会发生net::ERR_CLEARTEXT_NOT_PERMITTED错误;
  • 2.创建WebView实例时需要重写shouldOverrideUrlLoading方法,不然访问网络时会发生et::ERR_UNKNOWN_URL_SCHEME错误。这个是重定向的错误.
  • 3.访问网络时要注意区分https和http协议,因为它们使用的端口不同,不然无法访问网络。

各位看官,关于Android中WebView的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

以上是关于一起Talk Android吧(第三百四十二回:WebView基本用法)的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第三百三十二回:HTTP协议实践)

一起Talk Android吧(第三百四十九回:解析JSON数组四)

一起Talk Android吧(第三百四十七回:解析JSON数组二)

一起Talk Android吧(第三百四十六回:解析JSON数组一)

一起Talk Android吧(第三百四十回: Android中的Retrofit)

一起Talk Android吧(第三百四十四回: JSON概述)