作者:郭霖第一行代码(Android Studio开发)
我大概半年前看过图解HTTP这本书,写的非常好,这里推荐大家也看一下。最近我也准备温故而知新,从新花一些时间
来重读这本书。
我们可能会碰到一些比较特殊的需求,比如在应用程序里展示一些网页,加载和显示网页通常都是浏览器的任务,
Android提供了一个WebView控件,借助它我们可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种
各样的网页。
创建一个WebViewTest项目
首先修改activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
这里我们将WebView控件充满屏幕,接下来修改MainActivity中的代码
package com.gougoucompany.clarence.webviewtest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.web_view); webView.getSettings().setJavaScriptEnabled(true); //让webView支持js脚本 webView.setWebViewClient(new WebViewClient()); //需要从一个网页跳转到另一个网页时,我们希望目标网页仍然在当前WebView中显示,而不是打开系统浏览器 webView.loadUrl("http://www.baidu.com"); } }
HTTP协议工作原理特别简单,就是客户端向服务器发出一条HTTP请求,服务器收到了请求之后会返回一些数据给客户端,
然后客户端再对这些数据进行解析和处理。我们使用的WebView控件,其实也就是我们向服务器发起一条HTTP请求,
接着服务器分析出我们想要访问的是百度的首页,于是会把该网页的HTML代码进行返回,然后WebView再调用手机
浏览器的内核对返回的HTML代码进行解析,最终将页面展示出来。