1.简介

在Android开发中,我们难免会使用到网页,而Android给我们提供了非常方便的加载网页的工具--Webview,其实webview在设计上就是独立的一个体系,虽然webview也是一个view,但是webview在加载,显示,绘制等方便,不同于我们使用的各种view:button,imageview,text等,webview中有独立的绘图引擎去绘制网页中的各种资源;

同时对于webview来说,其实webview本身就是一个浏览器,webview控件包含了浏览器的各种功能,google已经开放出了足够的接口,你只需要调用相应的接口,既可以实现一个简单的浏览器;

下面将会使用webview创建一个简单的浏览器;

该浏览器有一个editText,能够让用户输入网址,有一个button让用户点击相应响应加载网页操作,当前指添加了返回按键,让webview回滚上一个加载页面的操作,当然你也可以监听别的按键或者操作,进行上一页或者下一页的操作,这个看各自的设计逻辑;

xml布局文件代码如下:

<?xml version="1.0" encoding="utf-8"?>                    
activity中的代码主要是设置一些webview使用过程中需要设置的Websettings,去设置浏览器支持js脚本,适配屏幕,web的加载器等;

代码如下:

package com.anana.sockettest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.webkit.WebChromeClient;import android.webkit.WebResourceRequest;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;import android.widget.EditText;public class WebviewActivity extends AppCompatActivity{    private EditText weburl;    private WebView webshow;    private Button searchurl;    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_webview);        weburl = (EditText) findViewById(R.id.weburl);        webshow = (WebView) findViewById(R.id.webshow);        webshow.getSettings().setJavaScriptEnabled(true);        webshow.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);        webshow.getSettings().setSupportMultipleWindows(true);        webshow.getSettings().setBuiltInZoomControls(true);        webshow.setWebViewClient(new WebViewClient());        webshow.setWebChromeClient(new WebChromeClient());        webshow.setOnTouchListener(new View.OnTouchListener()        {            @Override            public boolean onTouch(View view, MotionEvent motionEvent)            {                Log.d("browser","motionEvent:"+motionEvent.toString());                return false;            }        });        webshow.loadUrl("http://cn.bing.com");        searchurl = (Button) findViewById(R.id.searchurl);        searchurl.setOnClickListener(new View.OnClickListener()        {            @Override            public void onClick(View view)            {                String url = weburl.getText().toString();                Log.d("browser", "url:" + url);                webshow.getSettings().setJavaScriptEnabled(true);                webshow.loadUrl(url);            }        });    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event)    {        if (keyCode == KeyEvent.KEYCODE_SEARCH || keyCode == KeyEvent.KEYCODE_ENTER)        {            String url = weburl.getText().toString();            Log.d("browser", "url:" + url);            webshow.getSettings().setJavaScriptEnabled(true);            webshow.loadUrl(url);        }        if ((keyCode == KeyEvent.KEYCODE_BACK) && webshow.canGoBack())        {            webshow.goBack();            return true;        }        return super.onKeyDown(keyCode, event);    }}




更多相关文章

  1. Android数据存储之SQLite
  2. 【Android】Handler应用(一):从服务器端加载JSON数据
  3. Android(安卓)热修复(全网最简单的热修复讲解)
  4. Android(安卓)异步加载图片
  5. Android(安卓)RxJava操作符详解 系列:组合 / 合并操作符
  6. Android(安卓)RxJava 实际应用讲解:合并数据源 & 同时展示
  7. Android下拉刷新以及自动加载更多
  8. androidのXlist框架上拉下拉刷新案例
  9. Android平台介绍

随机推荐

  1. ADT20新建项目Android(安卓)Support libr
  2. android ActionBar(官方指导)
  3. (原)Eclipse的java中文件读写
  4. Android横竖屏切换
  5. android 录像/打开video文件
  6. Android(安卓)动画总结-矢量动画
  7. Android(安卓)HttpURLConnection网络通信
  8. Android(安卓)设备指纹
  9. android手机中图片的拖拉及浏览功能
  10. Android(安卓)设备指纹