android web view

【Android】webview常用方法和使用 webview详解 阅读详情

Android:控件WebView显示网页

WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。

webview有两个方法:setWebChromeClient 和 setWebClient

setWebClient:主要处理解析,渲染网页等浏览器做的事情

setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 

WebViewClient就是帮助WebView处理各种通知、请求事件的。

 

在AndroidManifest.xml设置访问网络权限:

<uses-permission android:name="android.permission.INTERNET"/>

控件:

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

 

用途一:加载本地/Web资源

example.html 存放在assets文件夹内

调用WebView的loadUrl()方法,

加载本地资源

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");

加载web资源:

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");

 

用途二:在程序内打开网页

 

创建一个自己的WebViewClient,通过setWebViewClient关联

复制代码
package com.example.testopen;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);             
        init();

    }
    

    private void init(){
        webView = (WebView) findViewById(R.id.webView);
        //WebView加载web资源
       webView.loadUrl("http://baidu.com");
        //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
       webView.setWebViewClient(new WebViewClient(){
           @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
               //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
             view.loadUrl(url);
            return true;
        }
       });
    }
    
}
复制代码

 

用途三:

如果访问的页面中有Javascript,则webview必须设置支持Javascript

//启用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);

 

用途四:

如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。

复制代码
//改写物理按键——返回的逻辑
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            if(webView.canGoBack())
            {
                webView.goBack();//返回上一页面
                return true;
            }
            else
            {
                System.exit(0);//退出程序
            }
        }
        return super.onKeyDown(keyCode, event);
    }
复制代码

用途五:判断页面加载过程

复制代码
    webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                // TODO Auto-generated method stub
                if (newProgress == 100) {
                    // 网页加载完成

                } else {
                    // 加载中

                }

            }
        });
复制代码

用途六:缓存的使用 

优先使用缓存

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

不使用缓存:

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

 

 

相关:

http://www.imooc.com/video/2269

在Android应用中使用WebView浏览网页的实现 WebView是Android提供的一个用于在应用中显示网页内容的控件。通过WebView,我们可以在应用中加载网页,并且可以与网页进行交互。本文将详细介绍如何在Android应用中使用WebView来浏览网页。 阅读详情

相关推荐

Android 中WebView的使用详解

前言: 通过WebView控件可以实现加载网页的效果。 加载URL(网络或者本地assets文件夹下的html文件) 加载html代码 Native和JavaScript的相互调用 一、加载网页的方法: 加载网络URL webView.loadUrl(“https://m.baidu.com”); 加载assets目录下的html文件 webView.loadUrl(“file:///android_asset/web.html”); 加载html代码 webView.loadData(); webV

路宇的博客 1万+

【基础】WebView浏览器组件

ad

weixin_43526787的博客 7443

基于deepseek+dify+达梦实现自然语言查询数据库

自然语言查询数据库信息

weixin_43974943的博客 1593

webview详解

一、基础知识 1、webview入门知识 1.我们通常是用浏览器来浏览网页,你很清楚的知道你正在使用浏览器,要么是PC客户端,要么是手机上的app。但是webview是一个嵌入式的浏览器,是嵌入在原生应用中的,你可能都意识不到你在用浏览器。 2.传统浏览器分为两个部分,UI(地址栏、导航栏)和浏览器引擎。webview就是原生应用中的浏览器引擎。 3.webview只是一个可视化的组件,是作为原生APP的视觉部分。 4.用webview展示的内容是不需要存储在本地的,可以直接从服务器获取。 5.这种灵活性打

zzz_zlp的博客 1万+

28-基于STM32单片机的便携式健康监测系统设计与实现(程序+原理图+元件清单)

本文详细介绍了基于STM32单片机的便携式健康监测系统设计与实现,该系统集成MAX30102光电传感器和MSP20压力传感器,实时监测心率、血氧和血压等关键生理指标。通过STM32F103C8T6主控芯片和HC-05蓝牙模块,实现数据采集、处理及无线传输,具有便携性高、操作简便等特点,适用于家庭健康监护和户外运动场景。

weixin_29191669的博客 420

荔枝派Lichee Nano全志F1C100s烧录避坑指南:从Fel模式到SPI Flash完整流程

本文详细介绍了荔枝派Lichee Nano基于全志F1C100s芯片的SPI Flash烧录完整流程,从FEL模式进入技巧到定制化sunxi-tools编译,再到分区策略与实战烧录步骤。针对开发者常见的烧录程序问题提供了专业解决方案,帮助用户高效完成嵌入式系统部署。

tea88的博客 788

Android小程序白屏,微信小程序web-view跳转h5 安卓白屏

在小程序使用 跳转到h5时 安卓白屏 ios正常 跳转的过程非常慢跳转去web-view.js代码gotoWebview(toUrl) {wx.navigateTo({url: '/pages/webview/webview',success: function (res) {res.eventChannel.emit('from', { url: toUrl })}})},web-view.js...

weixin_39845825的博客 1071

【ArcGIS Pro微课1000例】0065:制作千层饼多图层叠加效果

右键dem图层,点击符号系统,在右侧的符号系统窗口中,选择拉伸,勾选【显示名称】和【显示全部】,选择高程色带7。由于数据具有高程源,因此可以将数据进行三维显示。右键地面→添加高程源图层。打开ArcGIS PRo,新建一个局部场景,命名为千层饼。设置了高程源数据之后,千层饼一下子就变成了三维形状。数据默认都是在一个平面上,以默认的符号系统显示。到此为止,每个图层均为平面的千层饼已经做好了。将TIN图层的高程偏移设置为-1000。最后将等高线的高程设为2000.移除工程默认加载的图层。默认即可,不需要做修改。

智慧空间实验室 1154

android手机上传不了图片,【报Bug】nvue页面使用web-view组件,安卓手机无法调用页面的input标签上传图片...

详细问题描述nvue页面,使用web-view原生组件,导致web-view加载的网页页面不能触发input标签进行图片上传,导致这样的原因大致百度了一下是因为安卓5.0及以上使用input type="file"上传图片的时候,WebChromeClient下的openFileChoose()调用无效,苹果手机不存在此问题(安卓手机使用vue页面也不存在此问题,但是现在因为业务原因必须得使用原生...

weixin_30471013的博客 718

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2953

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1751

uniapp + vue2 + pfdjs + web-view 实现安卓、iOS App PDF预览

本文介绍了在uniapp中实现PDF预览功能的解决方案。通过使用pdfjs库和webview组件,实现了跨平台(安卓/iOS)的PDF文件浏览功能。关键步骤包括:1)下载pdfjs并解压到static目录;2)创建webview页面加载viewer.html;3)处理不同平台的URL差异;4)修改pdfjs源码注释同源校验逻辑以避免报错。文章提供了完整的Vue组件代码和效果截图,展示了如何在uniapp项目中集成PDF预览功能。该方法简单高效,适合需要快速实现PDF浏览功能的移动应用开发场景。

weixin_44185995的博客 904

【控制模块算法】控制理论的进修之路

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、(经典)自动控制理论【本科阶段】二、现代控制理论【本科阶段】三、最优控制理论【硕士阶段】总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对对控制理论的理解做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、(经典)自动控制理论【本科阶段】 一般控制工程、自动化相关的考研专业课就是自动

qq_35635374的博客 1448

小程序 web-view 安卓机显示PDF 为 空白页

web-view安卓存在兼容性问题,导致PDF显示不了 可改使用wx.downloadFile来显示 详细可看:https://blog.youkuaiyun.com/qq_41575586/article/details/103903735

weixin_39520809的博客 1052

1.2 Spring AI V1.1.2版本 架构全景:模块拆解与设计哲学

Override// 检查请求的 Token 数量throw new TokenLimitExceededException("请求超出 Token 限制");@Override// 记录实际消耗的 Token@Override// 最先执行// 接口// 不同实现// 使用方无需改变定义抽象,保证可移植性提供 Fluent API,提升开发体验Advisor 机制提供扩展点,支持灵活定制模块化设计让你只引入需要的依赖自动配置。

小林夕程的博客 219

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

小程序web-view打开PDF格式文件的安卓苹果兼容性问题

小程序中打开pdf格式原本可以使用web-view(承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用) <web-view src="{{link}}"></web-view> src里放链接就能够正常实现 但是src里面放pdf的链接涉及到了兼容性问题(苹果手机可以正常打开pdf格式文件,安卓打开为空白) 所以如果src里面放pdf格式就会出现问题,这个时候就要使用到微信的另一个API,openDocument(新开页面打开文档)这个时候就可以在安卓

sinat_39648402的博客 3291

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

uniapp H5 调用web-view出现的白屏(只限于ios 安卓手机无此情况)

福兮祸所伏,祸兮福所倚 bug描述:点击网页去调用webv-view 第一次没有问题 按返回键 然后再点击链接去调用web-view 苹果手机会出现白屏 (确切的说不是白屏 界面已经调取到了 只不过被白屏顶上去了 准确的说 应该是web-view失去了高度)安卓手机无此bug 解决办法 <view style="width: 100%;height: 100%;"> <web-view :src="webUrl" /> </view&...

请叫我书生的博客 2991

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

uni-app实现web-view的app端根据安卓ios自定义动态显示导航

uni-app实现web-view的app端根据安卓ios自定义动态显示导航 <template> <view class="content"> <!-- 这里是自定义导航(这是封装的自定义组件)大家可以直接换成view标签自己写 --> <headers v-if="ishow" :title="statisticsPageTitle" :isShowShadow="false" :isShowBank="true"></h

weixin_49030317的博客 1108

android 动画 残影,iOS中table view点击动画有残影,web view显示模糊

一个navigation controller的根视图控制器是一个table view controller,然后会根据对table view row的点击,推入一个web view,这个web view由一个web view controller管理。问题是:每次点击row切换至web view会有残影出现,而且显示出的web view上面好像蒙了一层纱,很模糊。附上演示动画和Interface...

weixin_28951059的博客 267

微信小程序web-view跳转h5 安卓白屏

在小程序使用<web-view src='{{src}}' ></web-view> 跳转到h5时 安卓白屏 ios正常 跳转的过程非常慢 跳转去web-view.js代码 gotoWebview(toUrl) { wx.navigateTo({ url: '/pages/webview/webview', success: function (res) { res.eventChannel.emit('from', { url:

weixin_44924173的博客 4255

web-view在安卓机型打不开附件, wx.downloadFile和wx.openDocument不支持打开图片类型 已解决!!!

最近在写小程序时遇到在预览图片和附件多种格式的文件时,使用web-view预览图片没有问题,但是预览附件时在安卓机型上显示空白的问题。 换一种写法用wx.downloadFile()和wx.openDocument()这两个api,发现安卓和ios都可以直接预览文件,但是不支持图片格式,原因是官方fileType不支持。 所以要是既想要预览图片,又要预览附件,需要同时使用web-view和wx.downloadFile()、wx.openDocument()。 步骤如下: (1)在html中调用点击方法,触

weixin_43991257的博客 1927

uni-app开发Android使用web-view组件问题

iframe加载本地路径的html文件必须在根目录 /hybird/html 下。使用web-view有很多限制,推荐使用: iframe标签,效果更好。相对应的,js、img等文件也必须在 /hybird/html 下。

qq_41204268的博客 233

微信小程序实现pdf预览(苹果安卓兼容)

微信小程序pdf预览 兼容安卓苹果 解决用web-view安卓端不兼容问题

qq_75069372的博客 7759
上一篇: Android 中创建Java项目的Date的转换工具
下一篇: android web view的学习 1
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值