Android——WebView控件访问网页

2023-10-26

一.WebView

Webview 是一个基于webkit的引擎,可以解析DOM 元素,展示html页面的控件,我们可以通过WebView来访问网页。

1.基本使用:

  1. 访问网页: webView.loadUrl(“http://www.baidu.com”);
  2. 设置为通过WebView显示网页,否则系统默认会通过手机中的浏览器打开网页:
    wb.setWebViewClient(new WebViewClient());

2.最简单的demo:

activity_main.xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <WebView
        android:id="@+id/webview"
        
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

MainActivity.java文件:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        WebView wb = (WebView)findViewById(R.id.webview);
        wb.loadUrl("http://www.baidu.com");
        wb.setWebViewClient(new WebViewClient());
    }
}

效果:

3.注意:

Android APP对百度进行访问必须打开INTERNET权限:

  1. AndroidManifest.xml->Permissions->add->Uses Permission->Name选择INTERNET
  2. 直接在AndroidManifest.xml文件上加上
    <uses-permission android:name="android.permission.INTERNET"/>

二.小练手

1.EditView补充内容

  1. hint属性提示输入的内容:android:hint=“内容”
  2. EditView响应回车并处理回车中的业务:
EditText ed = (EditText)findViewById(R.id.ed);//获取组件id
 ed.setOnEditorActionListener(new TextView.OnEditorActionListener() {  
           @Override  
           public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {  
               //需要处理的业务
               return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);  
           }  
       });  

2.案例

编写一个通过EditView输入网址,按下回车,WebView根据网址访问的小案例。
activity_main.xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <LinearLayout 
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText 
            android:id="@+id/ed"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="网址:"/>
    </LinearLayout>
       
    <WebView
        android:id="@+id/webview"
        android:layout_below="@id/ll"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

界面如图:

MainActivity.java文件:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
         final WebView wb = (WebView)findViewById(R.id.webview);
         final EditText ed = (EditText)findViewById(R.id.ed);
         wb.setWebViewClient(new WebViewClient());
         //EditView回车响应
         ed.setOnEditorActionListener(new TextView.OnEditorActionListener(){
        	public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        		//处理业务
        		String str = ed.getText().toString();
        		wb.loadUrl(str);
                return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);  
            }  
        });
    }
}

在EditView中输入百度的网址,按下回车:

在EditView中输入一篇博客文章的网址,按下回车:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android——WebView控件访问网页 的相关文章

随机推荐

  • 前端h5 播放器vue-video-player

    1 安装依赖 npm install vue video player 2 在main js全局引入 import VideoPlayer from vue video player import video js dist video j
  • 计蒜客 - 44280 UnDetected(并查集).md

    题目大意 题目链接 给你n个圆 ans 为 最少 前多少个 圆 能把x轴 0 200 完全覆盖 完全覆盖是相交的圆 的最左端 lt 0 最右端 gt 200 输出ans 1 分析 并查集维护边界和输入的圆是否相交 代码 1 2 3 4 5
  • 【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

    Doris 基于 MPP 架构的高性能实时分析型数据库 1 Doris 介绍 Apache Doris 是一个基于 MPP Massively Parallel Processing 大规模并行处理 架构的高性能 实时的分析型数据库 以极速
  • java上传实现 spring boot +element ui

    先从element ui el upload组件开始介绍
  • linux虚拟机ifconfig command not found

    在linux虚拟机中输入ifconfig命令 出现ifconfig command not found 以下是排查过程 1 cd sbin然后ls 没找到ifconfig命令 2 想通过yum install net tools安装 发现出
  • linux基础——linux线程间通信及同步机制总结

    线程间的通信有两种情况 1 一个进程中的线程与另外一个进程中的线程通信 由于两个线程只能访问自己所属进程的地址空间和资源 故等同于进程间的通信 2 同一个进程中的两个线程进行通信 本文说的就是第二种情况 关于进程间通信 IPC 可以看我的另
  • 测试理论----软件测试四大测试过程

    原文链接 1 测试分析 1 要点 1 软件需求分析 2 测试需求项的提取 3 用户使用场景分析 4 测试工具的调研和选取 5 测试缺陷分析 2 分工 1 测试人员 提取测试点 输出需求跟踪矩阵 2 测试负责人 输出测试计划 2 测试设计 1
  • i.mx287学习笔记6-声卡驱动

    上面是我的微信和QQ群 欢迎新朋友的加入 1 查看声卡设备 aplay l 可以看到存在一个声卡设备 2 制作一个音频文件 我是先下载一个音频 然后使用audition裁剪一下 转化为wav再进行播放的 转换出来之后 3 测试
  • 输入若干个整数,以-1标记输入结束,输出其中的最大数

    题目描述 输入若干个整数 以 1标记输入结束 输出其中的最大数 输入 若干个整数 以 1标记输入结束 输出 其中的最大数 样例输入 1 2 5 7 8 6 1 6 1 样例输出 8 1 使用数组 这种方法可以进行求解 但是如果输入的是 1的
  • 712. 两个字符串的最小ASCII删除和 -- 动规

    712 两个字符串的最小ASCII删除和 class MinimumDeleteSum 712 两个字符串的最小ASCII删除和 https leetcode cn problems minimum ascii delete sum for
  • Spring中的AOP和事务管理,以及SpringBoot中使用事务

    一 什么是事务 狭义上的事务特指数据库事务 一方面 当多个程序并发访问数据库时 事务可以在这些应用程序之间提供一个隔离方法 以防止彼此的操作互相干扰 另一方面 事务为数据库操作提供了一个从失败中恢复到正常状态的方法 同时提供了数据库即使在异
  • 全国等级保护测评机构推荐目录

    转自 http www djbh net webdev web LevelTestOrgAction do p nlbdLv3 id 402885cb35d11a540135d168e41e000c 国家信息安全等级保护工作协调小组办公室推
  • 机器学习实战:AdaBoost预测病马率

    import numpy as np 函数说明 加载数据集 Parameters filename 文件名 Returns dataMat 数据集 labelMat 标签 def loadDataSet filename numFeat l
  • select epool

    一 问题引出 联系区别 问题的引出 当需要读两个以上的I O的时候 如果使用阻塞式的I O 那么可能长时间的阻塞在一个描述符上面 另外的描述符虽然有数据但是不能读出来 这样实时性不能满足要求 大概的解决方案有以下几种 1 使用多进程或者多线
  • Deepin 20.1 安装nvidia显卡驱动 爬坑

    前言 之前用的是ubuntu系统 装得也是双系统 然后最近看到了deepin 系统 然后就装了下 在装nvidia显卡时 遇到了重启蓝屏的问题 在反复重装N多次系统同时查阅N多次网友资料时 总结出以下几点 当然如果你想安装的话直接滑下方 不
  • 【计算机视觉

    文章目录 一 检测相关 8篇 1 1 Attending Generalizability in Course of Deep Fake Detection by Exploring Multi task Learning 1 2 Harv
  • 基于参数shared_pool_reserved_size进一步理解共享池shared pool原理

    结论 1 与共享池相关的参数为 shared pool size shared pool reserved size shared pool reserved pct shared pool reserved min alloc 2 sha
  • String的三种遍历方式

    include include using namespace std int main string s1 string s2 hello bite string s3 s2 1 for循环 for size t i 0 i lt s2
  • JUC学习系列十一(并发类容器)

    首先了解一下并发类容器和同步类容器的概念 以及这两类的区别 一 同步类容器 同步类容器都是线程安全的 但在某些场景下可能需要加锁来保护复合操作 复合类操作如 迭代 反复访问元素 遍历完容器中的所有元素 跳转 根据指定的顺序找到当前元素的下一
  • Android——WebView控件访问网页

    目录 一 WebView 1 基本使用 2 最简单的demo 3 注意 二 小练手 1 EditView补充内容 2 案例 一 WebView Webview 是一个基于webkit的引擎 可以解析DOM 元素 展示html页面的控件 我们