Android(安卓)webview控件(一) 使用webview开发浏览器实例
16lz
2021-01-25
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); }}
更多相关文章
- Android数据存储之SQLite
- 【Android】Handler应用(一):从服务器端加载JSON数据
- Android(安卓)热修复(全网最简单的热修复讲解)
- Android(安卓)异步加载图片
- Android(安卓)RxJava操作符详解 系列:组合 / 合并操作符
- Android(安卓)RxJava 实际应用讲解:合并数据源 & 同时展示
- Android下拉刷新以及自动加载更多
- androidのXlist框架上拉下拉刷新案例
- Android平台介绍