WebView基础使用详解
一、概述
先说一下实现的几个方面 ,显示是内置浏览器打开网页,然后在是WebView打开网页,在了就是调用内置的htnl文件呈现,最后是WebView呈现的适配问题。
使用手机内置浏览器打开网页
还是先上效果图
由于拿的测试机是平板所以呈现出来不是特别的美观,但是功能实现是没问题的,就是打开一个百度的页面。
代码附上 activity.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.zero.cui.webviewdemo.MainActivity"> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="加载网页" /> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" > </WebView> </LinearLayout>
MainActivity 这里也有一点需要注意的就是,WebView.loadUrl()这个方法里面的网页地址协议,必须要加上(http://) 如果网址地址前面不添加这个协议 直接写 www.baidu.com 的话,那么它是呈现不出来百度页面的:
package com.zero.cui.webviewdemo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button mBtn; private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.webView); mBtn = (Button) findViewById(R.id.btn); mBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("http://www.baidu.com"); } }); } }
使用WebView打开网页:
有的人在想我们既然添加了WebView的控件为什么还要拿默认的浏览器来实现呢,因为它本身 有一个参数是需要添加的
mWebView.setWebViewClient(new WebViewClient());
如果不设置WebViewClient那么它就会调用默认的浏览器。
效果图:
二、讲讲调用html文件来如何实现
其实调用本地的html文件来实现也是非常的简单,首先我们要在src/main/的路径下面先创建一个叫assets的资源文件夹,然后往里面写上一个html文件。
web.xml代码附上:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <h1>Html标题</h1> </head> <body> 这是一个自定义的html文件 </body> </html>
然后就是Activity里面如何调用的问题了,调用本地文件的协议是file:///这里是有点不一样的,然后把路径放进去就可以了。
mWebView.loadUrl("file:///android_asset/web.html");
效果图:
最后来说说页面缩放的参数:
因为好比打开一个blog的页面,他显示到手机上的字体什么的,是特别小,跟屏幕不适配,也有一些字体重叠的现象,所以说这个时候你就需要加上缩放的参数才能处理显示的问题。
//使页面支持缩放 WebSettings webSettings = mWebView.getSettings(); //开启javascript支持 webSettings.setJavaScriptEnabled(true); // 设置可以支持缩放 webSettings.setSupportZoom(true); // 设置出现缩放工具 webSettings.setBuiltInZoomControls(true);